通过轻扫从最近打开的应用程序列表中杀死了应用程序。
在我的申请中,
只有当应用程序在前台或后台中可用时,我才会在后台运行运行服务。如果用户通过按移动设备的主页按钮在后台发送应用程序,则还应运行服务。
但是当用户从最近打开的应用程序中删除应用程序时
1)从最近的应用列表中删除时是否会自动调用任何方法?
2)将调用哪种方法?
答案 0 :(得分:4)
1.您可以在活动onDestroy方法中停止服务。
2.或在清单文件中,您还可以添加stopwithtask = true
<service
android:name="com.mycompany.TestService"
android:stopWithTask="true"
/>
3.or您还可以检查是否调用了'onTaskRemoved'。onTaskRemoved doc
答案 1 :(得分:2)
public boolean isAppRunning()
{
boolean appFound = false;
final ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
final List<RunningTaskInfo> recentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE);
for (RunningTaskInfo recentTask : recentTasks)
{
if (recentTask.baseActivity.getPackageName().equals("your.packagename"))
{
appFound = true;
break;
}
}
return appFound;
}
使用这种方法我已经解决了我的问题,如果我弄错了,那么我将关闭我的服务。
需要添加权限:
<uses-permission android:name="android.permission.GET_TASKS" />
希望它有效
答案 2 :(得分:1)
您应该在表格中添加权限
Like: android:excludeFromRecents="true"
Code:<activity
android:excludeFromRecents="true"
android:name="Example.com.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>