软件,即可通过刷卡从最近打开的应用程序列表中丧生。
在我的应用程序,
我在后台运行的服务 ,只有当应用程序在前台或后台 可用 。 如果用户通过按下移动随后也服务的home键发送的后台应用程序应该运行 。
但是,当用户从最近打开的应用程序 中删除应用程序 ,然后
1)是否有任何的方法自动调用最近的应用程序列表中移除的时候?
2)哪种方法会被调用?
- 我的要求:
当应用程序会从最近打开的应用程序在那个时候,我会停止这已经是 backgound 运行服务中删除。
- 面对的问题:
1)我有活动,N多...
2)我也想知道你的是,当应用程序会从最近的列表中删除。 Android操作系统不叫的onDestroy()方法均匀。 活动是在活动堆栈。
1.You可以在活动的onDestroy方法停止该服务。
2.or在manifest文件中,你还可以添加stopwithtask =真
<service
android:name="com.mycompany.TestService"
android:stopWithTask="true"
/>
3.or你也可以检查是否“onTaskRemoved”被调用。 onTaskRemoved DOC
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" />
希望它的工作
你应该添加的许可,您manifets
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>