启动服务时如何将意图传递给服务(但仅在某些时候)
||
因此,我正在为学校项目开发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吗?
没有找到相关结果
已邀请:
2 个回复
磨标烫徽啪
而不是
,然后 步骤2:使用
将
发送到服务以与服务器进行定期检查 然后,从服务的角度来看,基于计时器的检查与用户启动的检查之间没有区别。
雇砰
接受使用-