我创建了一个服务:
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. 服务已启动。2. 我退出活动(暂停) 3. 我浏览了 5-6 个不同的应用程序。4. 通过服务生成的通知返回活动。5. Activity 将继续 onCreate,因此将执行 startService。6.服务是从头开始创建的。(isRunning = false!即使它是真的......)
我正在努力保持服务的持久性。这是为 GPS 运行应用程序制作的。在我看来,好像当我在设备中浏览不同的应用程序时,android 决定 onCreate 我的活动(这很好)但服务从头开始重新启动!
我怎样才能保持它尽可能持久?
谢谢