我有一个基于Activity中的复选框的服务(用户可以启动或停止它)。 一旦启动,它将在后台运行,并且当活动为onDestroy()时不应该停止。
但是,当用户在Android的任务中滑动应用程序时,我想停止它,因为当用户重新打开应用程序时,此服务需要重新启动。
我该怎么做?是否可以在Application中的onTerminate()方法中停止服务。
答案 0 :(得分:8)
我该怎么做?
您可以在manifest.xml
service
上添加此内容
android:stopWithTask="true"
如果您想控制它,您也可以在Service
添加onTaskRemoved()
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
//STOP SERVICE OR WHATEVER YOU WANT
}
如果您使用onTaskRemoved()
,请不要添加android:stopWithTask="true"
,因为它不会被调用*
答案 1 :(得分:1)
您可以在调用onPause(
)或onDestroy()
时将标记设置为false。将此标记保存在SharedPreferences
中。使用此标记检查您的应用是否正在运行。仅当flag为true时才启动服务。