解決:Android App 在執行時候按下 home 鍵,讓App 在後臺執行,點選圖示再次進入時防止應用重新啟動
阿新 • • 發佈:2018-12-18
一:app 退出時,讓 app 在後臺執行,類似於 home 鍵的功能,最小化
重寫 onkeydown 和 onBackPressed 方法,主要是 movetoBack 方法。 注意在 MainActivity (主介面)中設定,而不是 SplashActivity(啟動頁)。 在 activity 中呼叫 moveTaskToBack (boolean nonRoot) 方法即可將 activity 退到後臺,注意不是 finish() 退出。
引數為 false 代表只有當前 activity 是 task 根,指應用啟動的第一個 activity 時,才有效; 如果為 true 則忽略這個限制,任何 activity 都可以有效。
程式碼片
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(false);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
moveTaskToBack(false);
super.onBackPressed();
}
二:Android 點選 Home 鍵後再點選 APP 圖示,APP 顯示退出之前的介面
解決方法: 在SplashActivity(啟動頁)中通過 isTaskRoot(Return whether this activity is the root of a task. The root is the first activity in a task.)方法來進行判斷:
程式碼片
:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState) ;
if (!isTaskRoot()) {
finish();
return;
}
/*.....*/
}