我有一個應用程序(許多活動)。我想在應用程序變爲背景時清除用戶憑據等少數值。我如何知道應用程序何時啓動?我試圖攔截主頁按鈕,但似乎我們不能這樣做。如果我調用onPause(),它會在每次從一個活動移動到另一個活動時被調用。我搜查了很多,但沒有得到任何具體的東西。當應用程序轉到背景時Android清除數據
請幫
我有一個應用程序(許多活動)。我想在應用程序變爲背景時清除用戶憑據等少數值。我如何知道應用程序何時啓動?我試圖攔截主頁按鈕,但似乎我們不能這樣做。如果我調用onPause(),它會在每次從一個活動移動到另一個活動時被調用。我搜查了很多,但沒有得到任何具體的東西。當應用程序轉到背景時Android清除數據
請幫
我認爲你有兩種方式來實現自己的目標一個是清零的onStop()你活動的狀態,其中包含您的數據和另一種方式是(你提到)追趕首頁新聞數據事件。
檢測首頁的新聞發佈會上,你應該重寫:onAttachedToWindow()
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
然後清除您的數據:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//Put your Codes here to Clear Data
}
});
這是很難用Android作爲有一個應用程序將沒有具體定義的背景。檢測主鍵是不夠的,因爲有很多其他事件會導致您的應用程序失去焦點。
例如,來電會導致您的應用程序「去背景」,但對用戶來說,這似乎並不是這種情況。
實現您想要的一種可能的方法是使用活動的OnPause和OnResume方法與應用程序類中的服務或簡單任務進行通信。 (任何獨立於你的活動的東西)。
當OnPause被調用時,啓動一個計時器。當OnResume被調用時,停止計時器。
如果定時器沒有在特定的時間段內停止,那麼你會認爲應用程序「在後臺」,並可以清除數據。
允許有足夠的時間來處理簡單的更改,例如上面的來電示例。也許一兩分鐘取決於你的情況。