某些实例后服务停止

时间:2014-08-18 10:56:40

标签: android

我正在实施一种app app跟踪器,它需要在后台运行服务。因此,在打开应用程序时调用服务,并在调用stopself()时停止服务。服务还包含一直运行的线程。它曾经运行完美。但是从最近几天开始它会停止一段时间。在完成某项任务后来到我的应用程序的ui服务停止! 有谁能建议我解决方案?

   public int onStartCommand(Intent intent, int flags, int startId) {

        Log.e("SERVICE","started");
        if(intent != null && intent.getAction() != null) 
        {
            day=intent.getExtras().getInt("day")+5;
            Toast.makeText(this, "day" +day, Toast.LENGTH_LONG).show();
            apps=intent.getStringArrayListExtra("apps");
            items=apps.size();
            timer=intent.getIntegerArrayListExtra("timer");
            Run[] a=new Run[items];
            t=new Thread[items];

            for(int i=0;i<items;i++)
            {
               int sec=0;
               app=apps.get(i).toString();
               time=timer.get(i);
               a[i]=new Run(app, time,sec);
               Log.e("APPTIME",app+ " "+time);
               t[i]=new Thread(a[i]);
               t[i].start();
            }

        }

    return super.onStartCommand(intent, flags, startId);
    }

2 个答案:

答案 0 :(得分:1)

您应该以STICKY_SERVICE

开始服务

Example以STICKY

开头

START_STICKY and START_NOT_STICKY

的主题

如果您正在使用Android KitKat

,则应考虑reading this

答案 1 :(得分:0)

尝试实施前台服务。 foreground service

前台服务会显示通知,并且在您需要之前永远不会停止。

在您的服务“onCreate”

中实施此代码段
Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
        System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
        getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION_ID, notification);