我正在开发一个应用程序,它通过接收器与我的服务进行通信。
服务代码
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(LOCATION_UPDATE);
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
receiverWorks(intent);
}
};
this.registerReceiver(mBroadcastReceiver, intentFilter);
return START_STICKY;
}
服务的清单声明
<service
android:name="com.test.IService"
android:enabled="true"
android:label="IService"
android:process=":iservice" >
</service>
问题是它在应用程序(我使用此服务的应用程序)被杀死后重新启动。我该如何防止这种情况?试图删除android:process但没有任何改变。
等你帮忙。
由于
答案 0 :(得分:6)
服务重新启动,因为您在START_STICKY
onStartCommand()
您需要返回start_not_sticky
。
有关详情,请参阅:START_STICKY and START_NOT_STICKY