關於Android平台上面is not valid; is your activity running?

來源:互聯網
上載者:User

標籤:



Android平台上面可以通過好幾種方式得到Context :

1、通過Activity的this

2、getApplicationContext()

3、getParent

這三種各自得到的是不同的,正常的話應該建議使用Activity.this.這個是最不容易出現問題的使用方法, 如果使用了第二種或者第三種的時候,將在Activity關閉掉的時候可能會出現異常 還是老老實實的使用Activity.this來得到Context的引用 


補充:  在顯示Dialog前檢測一下Activity是否運行結束 ,可以避免發生這個錯誤

檢查Activity是否運行:

GET_TASKS許可權,擷取啟動並執行活動

<uses-permission android:name="android.permission.GET_TASKS"/>

  public static boolean isActivityRunning(Context mContext,String activityClassName){       ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);        List<ActivityManager.RunningTaskInfo> info = activityManager.getRunningTasks(1);        if(info != null && info.size() > 0){            ComponentName component = info.get(0).topActivity;            if(activityClassName.equals(component.getClassName())){                return true;            }        }        return false;    }



關於Android平台上面is not valid; is your activity running?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.