example:
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();
- I start a consuming child thread in an activity that contains a handler to change ui, but when i exit the activity how do i stop the child thread?
- when i pressed the back key , i hope the child thread continue running.But how should i keep trace of the progress when i reenter the activity and change ui?
thread?