我目前正在写为Android,我需要启动服务的时候我退出或暂停该应用程序的应用程序。 我该怎么办? 在我的应用程序,每次当我点击一个东西的时候,它会去另一个活动,所以我不能把startservice这些活动里面的onPause。 我该怎么办?
Answer 1:
看看活动的生命周期在这里: http://developer.android.com/reference/android/app/Activity.html
当你开始一个新的Android不退出活动,它只是暂停了。 所以,开始里面的onPause service()方法应该罚款。
Answer 2:
根据Android的生命周期, onPause()
方法将调用作为第一个迹象表明,用户正在离开你的活动。 它可能离开与否。 所以,按照您的要求,您可以startService.
但要确保不要把沉重的代码中,因为它可能会影响用户体验。
Answer 3:
通过重写此方法,你可以检查你的应用程序是在onPause或的onDestroy
protected void onPause() {
Log.i("Status", "onPause");
super.onPause();
}
protected void onDestroy() {
Log.i("Status", "onDestroy");
super.onDestroy();
}
Answer 4:
当活动不再可见,它调用onStop()
但是我们仍然不能肯定,如果应用程序被破坏的Android操作系统在内部处理它。 因此,尝试以下步骤找到,如果你的应用程序在background
:
使用Get正在运行的任务信息
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<RunningTaskInfo> tasks = am.getRunningTasks(1);
如果任务列表不为空,检查是否运行TAKS属于您的应用程序。 如果属于,则返回true调用函数,在那里你可以开始你的服务; 否则返回
false
if (!tasks.isEmpty()) { ComponentName topActivity = tasks.get(0).topActivity; if (!topActivity.getPackageName().equals(context.getPackageName())) { return true; }
编辑:这可能会有帮助: http://developer.android.com/reference/android/app/ActivityManager.html#getRunningAppProcesses
文章来源: How do I check if I am pausing or exiting the application for android