我的查询是,我希望在应用程序进入销毁/关闭时使用警报管理器取消服务。
如果我在活动中 A ,请点击按钮开始活动 B 突然用户将按主页按钮。 ----如果应用程序在后台运行,则不取消服务。但当他要从当时的应用程序列表中删除时取消服务。
即使用户通过按主屏幕在后台发送应用程序,服务/闹钟管理器也能正常工作。
应用程序无法关闭。
1)单击后退按钮(如果堆栈有多个活动,则多次)。
2)按主页按钮,然后从最近列表中删除。
我面临(2)第二个选项的问题。当用户按下主页按钮时,服务或报警管理器应该正常工作。但是when user will be going to remove application from recent list at that time i want to cancel service/alarm manager
。
我们可以识别哪些列表人员/方法?
答案 0 :(得分:1)
每当我的服务要执行时,我现在正在检查isAppRunning(),如果它返回true,则执行Service否则取消服务,简单:)
public boolean isAppRunning(Context context)
{
boolean appFound = false;
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (int i = 0; i < recentTasks.size(); i++)
{
if (recentTasks.get(i).baseActivity.getPackageName().equals("mypackagename"))
{
appFound = true;
break;
}
}
return appFound;
}
添加权限
<uses-permission android:name="android.permission.GET_TASKS" />
所以每当从最近的列表中删除它。我会通过这种方法知道的。
答案 1 :(得分:-1)
在班级中添加onDestroy()
@Override
protected void onDestroy() {
super.onDestroy();
//do your code here
}