我创建了一项服务:
public class ActivityService extends Service {
private static StopWatch timer = new StopWatch();
private long tid;
private GPSMonitor gps;
private Context ctx;
private boolean isRunning = false;
private NotificationManager nm;
protected void onHandleIntent(Intent workIntent) {
if (workIntent == null)
return;
int state = workIntent.getIntExtra("state", -1);
Log.d("bla", isRunning + "");
Log.d("bla", state + "");
if (state == 0)
{
if (isRunning)
return;
tid = workIntent.getLongExtra("tid", 0);
isRunning = true;
}
else if (state == 1)
{
...
}
else if (state == 2)
{
....
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
ctx = this;
onHandleIntent(intent);
return START_STICKY;
}
在我的活动中:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_track);
Log.d("bla", "create");
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
reMyreceive=new Myreceiver();
Intent i= new Intent(this, ActivityService.class);
i.putExtra("tid", 123);
i.putExtra("state", 0);
startService(i);
除以下情况外,一切都很好: 1.服务已启动。 我走出活动(暂停) 3.我浏览了5-6种不同的应用程序。 4.通过服务生成的通知返回活动。 5.活动将继续创建,因此将执行startService。 6.该服务是从头开始创建的。 (isRunning = false!即使这是真的......)
我试图保持服务的持久性。这是为GPS运行应用程序。 在我看来,当我在我的设备中浏览不同的应用程序时,android决定onCreate我的活动(这很好),但服务从头开始重新启动!
如何保持这一点尽可能持久?
由于