我試圖以確定當用戶關閉後,以任何方式,按home鍵,返回鍵或切換到其他應用我的應用程序正在被重新恢復後, 。Android的 - 如何知道什麼時候應用程序已經在後臺
我需要做的是,當應用程序進入後臺設置一個布爾值,因此,當它恢復,我知道,這是在之前的背景,我可以採取相應的行動。
我試圖在活動中使用onResume和onPause方法來知道應用程序何時在後臺運行,然後又恢復,但由於只有一個活動可以活着,所以我沒有成功。當一個活動暫停時,這並不意味着該應用程序進入後臺,因爲另一個活動可能已啓動,但該活動的onResume事件只有在前一個活動暫停後纔會觸發。
我也試着列出前景所有的應用程序,但沒有成功,如果我把我的應用程序在後臺恢復另一個應用程序,我的應用程序總是導致要在前臺。
我讀到由於Android 4有知道即使應用前景的新方法,但我需要我的應用程序是兼容Android 3.0的設備了。
這裏是我試圖在每一個活動將代碼(MyApp的是我的應用程序名稱):
@Override
protected void onResume() {
super.onResume();
MyApp.isPaused = false;
}
@Override
protected void onPause() {
super.onPause();
MyApp.isPaused = true;
}
這也是我試圖列出前景所有的應用程序:
ActivityManager activityManager = (ActivityManager)((Activity) currentContext).getSystemService(ACTIVITY_SERVICE);
List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
for(RunningAppProcessInfo appProcess : appProcesses){
if(appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
if(appProcess.processName.equals("com.xxx.myapp")) {
Log.i("MyApp", "it's in foreground");
}
Log.i("MyApp", appProcess.processName);
}
}
你能張貼一些代碼? – Talha
@Talha我添加了一些代碼 – dany84