今天遇到這個問題,找了很久,網上一些解決方法不夠完全。特做此記錄:
經測試以下方法不能將在后台運行的activity切換到前台運行!
1 Intent i = new Intent(); 2 i.setClass(this, MainActivity.class); 3 i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 4 startActivity(i);
必須要將i替換為getApplicationContext()才可以將MainActivity運行,但是並不是將后台運行的MainActivity切換到前台,而是新建了一個新的任務運行MainActivity。
必須用以下代碼
1 Intent start = new Intent(getApplicationContext(),MainActivity.class);
2 start.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 3 startActivity(start);
並且在相應的MainActivity需要做如下紅色字體部分配置
<activity android:name=".MainActivity" android:label="@string/app_name" android:launchMode="singleTop">
才能將后台運行的MainActivity重新排序到前台運行。