[英]Activity in background gets killed when Home button is pressed
我遇到一個奇怪的問題,可以說我有兩個活動A和B,應用程序以活動A開始,我繼續進行活動B,請按Android主頁按鈕,返回到使我回到活動B的應用程序。然后按“返回”按鈕(兩個硬件工具欄上的),這將關閉應用程序,但應返回到活動A。活動B沒有覆蓋onBackPressed,並且活動A在清單中聲明為PARENT_ACTIVITY。 我從沒有標志的Intent開始。 知道為什么會這樣嗎? 謝謝
在活動A中,當您調用活動B時,也許您具有以下命令:
finish();
如果是,則應刪除此行。 然后,當您在活動B中按返回鍵時,您應該返回A。否則,請嘗試共享您的代碼。
后退按鈕的行為取決於系統版本。 支持在較舊的Android版本中提供向后導航,如下所述:
https://developer.android.com/training/implementing-navigation/ancestral.html
<application ... >
...
<!-- The main/home activity (it has no parent activity) -->
<activity
android:name="com.example.myfirstapp.MainActivity" ...>
...
</activity>
<!-- A child of the main activity -->
<activity
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity" />
</activity>
</application>
調試后堆棧問題的最佳,最方便的方法是在開發人員選項中啟用“不要保留活動”選項。
那是我最好的猜測。 祝好運!
為了在不破壞舊活動的情況下運行新活動,您必須將標志FLAG_ACTIVITY_NEW_TASK
添加到將要運行該活動的意圖中:
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
設置此標志時:
此活動將成為此歷史記錄堆棧上新任務的開始。 任務(從啟動它的活動到下一個任務活動)定義了用戶可以移動到的原子活動組。 任務可以移到前台和后台; 特定任務中的所有活動始終保持相同的順序。
因此啟動該活動的活動將保留在堆棧中,因此您可以再次調用它,因此即使您之前按了HOME_BUTTON ,也可以在按BACK_BUTTON時再次自動調用它。
並且您必須將@gduh答案與我的結合起來,以確保您必須確保未調用finish();
;。 在ActivityA
同時調用ActivityB
。
感謝您的幫助,問題是由清單android:launchMode = singleinstance中的活動標志引起的(它最初不是我的項目,所以我錯過了,我只是希望我不要通過刪除它來搞砸其他事情)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.