我想在特定情況下在我的應用中啓動通知,僅當某個活動不可見時。確定鎖定屏幕已解鎖
我設法做到這一點做的綁定/解除綁定服務的,當我創建和銷燬活動(使用的onCreate /的onDestroy)電子在布爾節省如果此活動是通過在onPause /的onResume方法可見,如下面的代碼波紋管顯示:
public void onCreate(Bundle savedInstanceState) {
// ...
bindService(...);
}
public void onDestroy() {
// ...
unbindService(mConnection);
}
public void onResume() {
// ...
// this method sets to true the Service's boolean which retain Activity's visibility.
mService.registerActivity(true);
}
public void onPause() {
mService.registerActivity(false);
}
而在服務上,我檢查這個布爾值來啓動通知。
它適用於除特定情況之外的所有情況:在此活動中打開應用程序但鎖定屏幕已啓用時。
通過我做的一些測試,當鎖屏出現時,Activity.onPause方法被調用。我希望Activity.onResume方法在鎖定屏幕解鎖時才被調用,但這不會發生。當我按下電源按鈕來召喚鎖屏時,Activity.onResume方法已被調用。從這個意義上說,我正在做的是不正確的。
如何讓Activity.onResume方法僅在用戶解鎖鎖定屏幕時被調用?或者...我如何識別鎖定屏幕已解鎖並且用戶真的在查看活動?
將'Activity.onWindowFocusChanged(布爾hasFocus)'返回你所需要的價值? – techiServices
@ techiServices謝謝!這工作完美無瑕。但我不能接受這個「答案」。請回答這個問題,我可以接受它。好? – borges
已回答。非常感謝。 – techiServices