嘿,我有一個應用程序,現在當APP進入onPause或onDestroy,因爲我想在這種情況發生時調用某個函數。 我試圖覆蓋活動中的onPause並在所有項目中擴展該活動,但onPause在活動之間的每次遷移(這是邏輯上的)上都被調用,但這不是我想要的。 我想如果用戶退出應用程序的onDestroy()回調將被調用來知道當用戶退出應用程序或暫停它(按home鍵) 問候,如何檢測應用程序何時最小化或退出
回答
,如果用戶按下主頁按鈕onStop()回調將被調用。
如果我是另外一個活動,那麼這兩個實現的東西 –
你可以創建一個基本活動,所有活動將會從那一個繼承,那樣你就可以檢測到來自任何活動的回調。 –
它很簡單。
您可以通過採取字符串變量如下簡單的檢查:
static String active = "false";
**Thing to do :**
if (active.equals("pause")) {
//do your pause task
}
@Override
public void onPause() {
super.onStart();
active = "pause";
}
@Override
public void onStart() {
super.onStart();
active = "start";
}
@Override
public void onDestroy() {
super.onStart();
active = "destroy";
}
通過檢查字符串變量,可以使之成爲可能。
在所有的活動中當整個應用程序暫停時,他正在詢問狀態。 但是,如果您正在檢查靜態字符串到活動中,這將無法正常工作,因爲onPause也會在您打開新活動時被調用 – Radon8472
:
@Override
protected void onUserLeaveHint() {
super.onUserLeaveHint();
Log.e("TAG", "Activity Minimized");
}
在您的主要活動:
@Override
public void onBackPressed() {
Log.e("TAG", "App Exit");
super.onBackPressed();
}
注:沒有辦法,當應用程序被系統殺死(例如與任務退出檢測經理)
所以你想知道整個應用程序什麼時候進入到Bacground,從Activity.onPause的方法告訴你何時作爲單身活動進入背景。
爲了你的需求,你可以添加
到您的Android清單。這將稱這樣的類爲「YourApplication」
public class YourApplication extends Application {
@Override
public void onCreate() {}
public public void onTerminate() {
super.onTerminate();
}
}
例如,爲整個應用程序的「onCreate」或「onTerminate」(而不是每個單獨的活動)。 但是java文檔說你不應該相信onTerminate會在每個應用程序銷燬時被調用(請參閱:android.app.Application subclass, onTerminate is not being called)。
我認爲最好的辦法是,如果你
- 在所有的活動中添加自己的了Methode「的onPause」和「的onResume」你的應用程序類
- 您存儲到應用類時的onPause或的onResume被稱爲
- 並且當您將所有活動都放在「onPause」
- 並且您打電話給您的應用程序時,您會給您打電話給您自己的Application.onPause。的onResume當第一個活動是早在 「的onResume」
'onTerminate'從來沒有調用 –
比嘗試我的解決方案的第二部分。 – Radon8472
我用這個方法來檢測,如果應用程序切換到後臺或者被殺害
第1步: 作出這樣
public class OnClearFromRecentService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
服務
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("ClearFromRecentService", "Service Started");
return START_NOT_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("ClearFromRecentService", "Service Destroyed");
}
@Override
public void onTaskRemoved(Intent rootIntent) {
Log.e("ClearFromRecentService", "END");
//Code here
stopSelf();
}}
步驟2)登記的manifest.xml此服務
<service android:name="com.example.OnClearFromRecentService" android:stopWithTask="false" />
步驟3)然後在您的飛濺活動啓動此服務
startService(new Intent(getBaseContext(), OnClearFromRecentService.class));
所以,現在當你的應用程序被手動殺死,onDestroy方法將被稱爲
試試這個在你的代碼,讓我知道它的工作。 快樂編碼:)
在你的應用類中實現
Application.ActivityLifecycleCallbacks
。這將實現以下ActivityLifeCycle方法:
isActivityVisible()
onActivityCreated()
onActivityStarted()
onActivityResumed()
onActivityPaused()
onActivityStopped()
onActivitySaveInstanceState()
onActivityDestroyed()
和寄存器中的OnCreate()應用類等的回調監聽:
registerActivityLifecycleCallbacks(this);
定義應用程序類的全局變量。
私有靜態布爾isActive;
現在更改活動生命週期的覆蓋的方法是這樣的:
public static boolean isActivityVisible() {
return isActive;
}
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
isActive = true;
}
@Override
public void onActivityPaused(Activity activity) {
isActive = false;
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
isActive = false;
}
,你可以在isActive變量的值執行所需的操作。
- 1. 如何檢測dbus應用程序何時退出或斷開?
- 2. 如何檢測我的應用程序何時最小化?
- 3. 如何檢測Android應用何時最小化?
- 4. iOS - 檢測應用程序何時退出
- 5. 如何在最小化應用程序時彈出窗口?
- 6. 如何通過後退按鈕使應用程序最小化?
- 7. 如果應用程序已關閉如何檢測/退出
- 8. 如何最小化J2ME應用程序?
- 9. Android應用程序:退出vs最小化
- 10. 最小化而不是退出Windows Phone Silverlight 8.1應用程序
- 11. 如何使用c#或python最小化一個應用程序?
- 12. 如何檢查是否另一個應用程序最小化?
- 13. 如何使用wxPython檢測我的窗口何時最小化?
- 14. 檢測應用程序關閉/最小化
- 15. 在退出按鈕時退出Phonegap-Android測試應用程序?
- 16. 如何檢測UWP退出
- 17. 如何在應用程序最小化時處理Asyntask?
- 18. 如何在應用程序最小化時更新UI
- 19. 如何以編程方式退出或退出Windows Phone 8應用程序?
- 20. E4 RCP應用程序監聽最大化或最小化
- 21. 在啓動應用程序時調用ContentProvider時 - 如何退出應用程序
- 22. C#確定何時運行或退出外部應用程序
- 23. 如何退出wpf應用程序
- 24. 如何退出android應用程序?
- 25. 如何退出Android應用程序?
- 26. android - 如何退出應用程序
- 27. 如何完全退出應用程序
- 28. 如何退出PhoneGap的應用程序?
- 29. 如何退出wp7應用程序?
- 30. 如何正常退出應用程序
你想要聽'onStop()'而不是'onPause()'。 –
定義「用戶退出應用程序」..在android中沒有這樣的概念。 **編輯:**你可以在'onPause'中檢查'isFinishing()'也許這就是你想要的 – Selvin
我的意思是退出應用程序是推壓主頁按鈕(從任何活動),或退出正常的方式使用返回鍵。在後退按鈕的情況下,很容易我可以覆蓋主活動中的onstop,但是從任何活動中按下主頁 –