Android上重新启动服务

时间:2013-06-18 04:52:09

标签: android android-service

我创建了一项服务:

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我的活动(这很好),但服务从头开始重新启动!

如何保持这一点尽可能持久?

由于

0 个答案:

没有答案