调用startService后重启服务

时间:2015-10-05 18:58:29

标签: android android-intent broadcastreceiver android-service

我正在使用MainActivity启动服务。并且BroadcastReceiver附加到我的应用程序。在该课程中,我已经编写了以下代码,以便在手机连接到互联网时启动我的服务。

private void doUploading(Context context) {
    Bundle extras = new Bundle();
    extras.putBoolean(Flags.KEY.PHONE_IS_ONLINE_KEY, true);
    Intent intent = new Intent(context, LocationService.class);
    intent.putExtras(extras);
    intent.setAction(Flags.ACTION.SEND_UPDATE_COMMAND_ACTION);
    context.startService(intent);
}

在LocationService类中,我覆盖了onStartCommand(Intent,int,int)方法。当BroadcastReceiver启动服务时,以下代码开始执行。

if (intent.getAction().equals(Flags.ACTION.SEND_UPDATE_COMMAND_ACTION)) {
            Bundle extras = intent.getExtras();
            if (extras.getBoolean(Flags.KEY.PHONE_IS_ONLINE_KEY)) {
                upload();
            }
}

当我在手机中运行此应用程序时,此代码正常工作。但我发现了以下错误。

断开手机与互联网的联系。我运行应用程序。启动LocationService。然后杀死活动。 (也可以从最近的应用程序中删除它)。现在LocationService仍在运行。(我已经通过调试验证了它)。然后将手机连接到互联网。 BroadcastReceiver按预期执行其代码。但是然后LocationService重新启动。(从开始重启。这意味着来自onCreate()函数)我无法弄清楚为什么会发生这种情况..请帮忙......!

谢谢.. !!

0 个答案:

没有答案
相关问题