【发布时间】:2016-05-18 09:30:25
【问题描述】:
示例:
new Thread(){
private Message message;
public void run() {
PackageManager packageManager = getPackageManager();
List<PackageInfo> packages = packageManager.getInstalledPackages(0);
progressBar1.setMax(packages.size());
int progress = 0;
for (PackageInfo packageInfo : packages) {
ScanInfo scanInfo = new ScanInfo();
String appName = packageInfo.applicationInfo.loadLabel(packageManager).toString();
String packageName = packageInfo.packageName;
scanInfo.appName = appName;
scanInfo.packageName = packageName;
String sourceDir = packageInfo.applicationInfo.sourceDir;
String md5 = MD5Utils.getFileMd5(sourceDir);
String desc = AntivirusDao.checkFileVirus(md5);
System.out.println("-------------------------");
System.out.println(appName);
System.out.println(md5);
if(desc == null){
scanInfo.desc = false;
}else{
scanInfo.desc = true;
}
progress++;
progressBar1.setProgress(progress);
message = Message.obtain();
message.what = SCANNING;
message.obj = scanInfo;
handler.sendMessage(message);
}
message = Message.obtain();
message.what = FINISHED;
handler.sendMessage(message);
};
}.start();
- 我在一个包含一个 处理程序更改 ui,但是当我退出活动时,如何停止子线程?
- 当我按下返回键时,我希望子线程继续运行。但是当我重新进入活动并更改用户界面时,我应该如何跟踪进度?
线程?
【问题讨论】:
-
在 SO 或 Google 上搜索会给出几个答案。这是一个stackoverflow.com/questions/8505707/…