启动服务时如何将意图传递给服务(但仅在某些时候)

|| 因此,我正在为学校项目开发Android应用程序,并且在开发结束时遇到了一个奇怪的错误。该应用程序的一部分是在后台运行并经常与服务器签入的服务,但是需要有一个选项是在后台运行该服务还是使用手动签入。为了避免重复代码,我试图做的是将Intent传递给服务,当它以布尔值开始时沿“强制一次更新,然后停止。”行表示。似乎没有获得此值。 启动服务的代码:
Intent intent = new Intent(this, EmpCheckinService.class);
intent.putExtra(\"singleCheckInOnly\", true);
intent.putExtra(\"locationString\", location);

startService(intent);
以及Service类中的代码:
// This is the old onStart method that will be called on the pre-2.0
// platform.  On 2.0 or later we override onStartCommand() so this
// method will not be called.
@Override
public void onStart(Intent intent, int startId) {
    examineIntent(intent);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    examineIntent(intent);
    // We want this service to continue running until it is explicitly
    // stopped, so return sticky.
    return START_STICKY;
}

private void examineIntent(Intent intent) {
    try {
        singleCheckInOnly = intent.getExtras().getBoolean(\"singleCheckInOnly\", false);
        locationString = intent.getExtras().getString(\"locationString\");
    } catch (Exception e) {
        // Don\'t need to do anything here, just prevent from crashing if the keys aren\'t found
    }
}
如您所见,我已经使用onStart和onStartCommand使其可以在1.5或2.1+设备上运行,但是它从未遇到过任何一个功能。有人可以在这里指出正确的方向吗? 编辑:我想我找到了问题。在onStartCommand之前调用过onCreate吗?     
已邀请:
  在onStartCommand之前调用过onCreate吗? 是。 如果您执行以下操作,这将更加简单并且更加用户友好: 步骤#1:创建一个
IntentService
而不是
Service
,然后 步骤2:使用
AlarmManager
Intents
发送到服务以与服务器进行定期检查 然后,从服务的角度来看,基于计时器的检查与用户启动的检查之间没有区别。     
如果您要放的东西多于1个,则最好使用捆绑包 Tos发送额外使用-
 Intent i = new Intent(sender.this,receiver.class);
           Bundle extras = new Bundle();
    extras.putString(\"key1\",element);
    extras.putString(\"key1\",element);
    extras.putString(\"key2\",element2);
    extras.putString(\"key3\",element3);
    extras.putString(\"key4\",element4);
  ......so on
        i.putExtras(extras);
接受使用-
   Bundle extras2 = getIntent().getExtras();

            if (extras != null){
            final String str = extras2.getString(\"key1\");
final String str = extras2.getString(\"key2\");
final String str = extras2.getString(\"key3\");
final String str = extras2.getString(\"key4\");
final String str = extras2.getString(\"key5\");
......so  on
    

要回复问题请先登录注册