1. 程式人生 > >android 判斷 activity 狀態

android 判斷 activity 狀態

轉自: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();