嘿,我有一个应用程序,现在当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,但是从任何活动中按下主页 –