Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如果AsyncTask不是内部类… – 一些问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1)我不高兴为什么 Android的样本几乎使用AsyncTasks作为私有内部类.我知道使它成为内部类是方便的,但它使我们的类文件更长,难以阅读.货架行业的样品应用程序甚至有845行.你不觉得这是坏的设计还是坏的建筑?

2)如果我使我的ScanStorageTask外部类,我必须传递给它?整个活动还是只使用小部件?

例:如果我必须在ScanStorageTask中使用WebView,Button和ProgressBar.
用这个

ScanStorageTask task = new ScanStorageTask(this); // "this" is activity reference,then get the webView,button,progressBar from it.

或这个:

ScanStorageTask task = new ScanStorageTask(webView,progressBar);

解决方法

在外部做任何事情都没有错,实际上可能是一个更好的设计.传递UI元素是一种紧密的耦合,当您有一个非常大的代码库时,可以让您陷入困境.

为什么不在外部使用UI控件采用的“监听器”模式?使您的ScanStorageTask成为其自己的类,使用onComplete方法创建一个OnCompleteListener接口,并将其传递到您的ScanStorageTask实例(公开一个setOnCompleteListener方法或某种事情).那么onPostExecute可以这样做:

if(onCompleteListener != null)
  onCompletelistener.onComplete(data);

这样,您可以根据数据在活动中定义UI更新.这是更好的分离关注点,并将保持你的代码行每一班,因为这似乎是你喜欢的.如果你还没有这个,你可以创建一个代表你需要传入和传出的数据的类,这就是你作为执行方法和onPostExecute传递给onComplete的参数传递给任务.

大佬总结

以上是大佬教程为你收集整理的android – 如果AsyncTask不是内部类… – 一些问题全部内容,希望文章能够帮你解决android – 如果AsyncTask不是内部类… – 一些问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。