android服务在应用程序被杀死时自动重启

dra*_*ula 5 java service android

我正在开发一个应用程序,通过接收器与我的服务进行通信.

服务代码

    @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;
    }
Run Code Online (Sandbox Code Playgroud)

服务的清单声明

    <service
        android:name="com.test.IService"
        android:enabled="true"
        android:label="IService"
        android:process=":iservice" >
    </service>
Run Code Online (Sandbox Code Playgroud)

问题是它在应用程序(我使用此服务的应用程序)被杀死后重新启动.我该如何防止这种情况?试图删除android:进程但没有任何变化.

等你帮忙.

谢谢

Shr*_*ant 6

该服务重新启动本身,因为你正在返回START_STICKYonStartCommand()

你需要返回start_not_sticky.

有关详细信息,请阅读:START_STICKY和START_NOT_STICKY

  • 感谢您的回复.但据我所知,如果服务停止,START_STICKY会重新创建.问题是我的应用程序在关闭后销毁服务的原因. (6认同)