[英]Activity not destroyed
我有一個應用程序,當用戶按下“后退”按鈕時,該應用程序會進入后台
@Override
public void onBackPressed() {
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
因此,用戶關閉應用程序的唯一方法是使用task manager
並手動將其停止。
現在,我正在嘗試通過使用Android設備中的task manager
關閉我的應用程序來測試onDestroy
,但是,在Android Studio
該應用程序似乎還活着,它顯示Session: '<app_name>' : running
, onDestroy
正在Session: '<app_name>' : running
不叫。
為什么會這樣,我該如何解決?
**我想看到在我使用task manager
停止應用程序並手動停止它時調用了onDestroy
,因為用戶要關閉我的應用程序就必須這樣做,而不是通過按后退按鈕來完成。 通過按“后退”按鈕,該應用程序將繼續運行並且運行良好,這就是我想要的。
為什么要重新啟動背面的活動? 什么都不做
@Override
public void onBackPressed() {
}
調用finish()
銷毀一個Activity。
@Override
public void onBackPressed() {
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
finish();
}
在“設置” →“ 開發人員選項”下 ,轉到“應用程序”部分,然后啟用“ 不保留活動 ”選項。 然后,每當您按下后退按鈕時,該應用程序將被銷毀。 我想覆蓋“后退按鈕”操作以銷毀應用,可以覆蓋“活動”中的onKeyDown
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
finish();
}
return super.onKeyDown(keyCode, event);
}
您可以調用finish();
,例如,在startActivity(setIntent);
之后startActivity(setIntent);
或者,您可以調用super.onBackPressed();
,也最后。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.