android 判断 activity 状态

来源:互联网 发布:百度云 seo 编辑:程序博客网 时间:2024/05/07 07:11

转自:http://fengweipeng1208.blog.163.com/blog/static/212773180201391523739889/

由于多线程下载,在下载完成时,要回调Activity中的方法,但是,有可能用户在此期间已经点击了Back,Activity的onDestroy方法已经被调用,Activity已经被销毁,所以,下载线程在完成下载,回调时,要先判断Activity的状态,是否已经销毁掉,在网上查找答案,结果遇到一个说:

((Activity) mContext).isDestroyed();
可是到MyEclipse中,写了一下,代码提示,根本没有这个方法,真心坑爹啊,不过,有一个activity#isFinishing,写了个测试代码,发现可用,Activityon在Destroy之前,activity#isFinishing返回false,Activityon在Destroy之后,返回true。
测试线程代码如下:

import android.app.Activity;

public class MyThread extends Thread {
Activity activity;

public MyThread(Activity activity) {
super();
this.activity = activity;
}

@Override
public void run() {
super.run();

for (int i = 0; i < 3; i++) {
System.out.println(i + " activity:" + activity);
System.out.println(i + " isFinishing:" + activity.isFinishing());
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
ps:1.activity#isFinishing是4.2之后才有的方法。
2.((FragmentActivity) mContext).isDestroyed();
0 0
原创粉丝点击