我正在使用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()函数)我无法弄清楚为什么会发生这种情况..请帮忙......!
谢谢.. !!