您的位置:首页 > 移动开发 > Android开发

android 判断 activity 状态

2015-08-22 15:49 274 查看
转自: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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: