我有一项由活动中的按钮运行的服务。该服务注册广播接收器。我知道在onStartCommand方法启动时从活动中获取数据的方法(bundle bundle = intent.getExtras());
我的问题:如果想在onDestroy方法启动时从活动中获取数据,该怎么办?换句话说:我想要处理用户在调用onDestroy方法时检查的复选框,因为操作取决于复选框。
有什么想法吗?
由于
答案 0 :(得分:0)
您可以调用startService并传入一个布尔值“shutdown”,使其等于true以及您希望传递的其他信息,而在onStartCommand中可以检查“shutdown”标志并处理另一个传递。信息,然后调用stopSelf()。示例代码
Intent intent = new Intent(this, MyService.class);
intent.putExtra("shutdown", true);
intent.putExtra(otherdata);
startService(intent);
MyService onStartCommand 中的
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
if (intent != null)
{
// get the data and process
if (intent.getBooleanExtra("shutdown", false);
{
stopSelf();
}
}
return START_STICKY;
}
答案 1 :(得分:0)
您可以将数据保存在共享首选项中,并在服务的ondestroy中进行检查。