Android后台任务问题

时间:2017-06-14 10:52:15

标签: java android service

我有来自Android的Service类的后台任务问题,每当我从应用程序启动服务并返回到我的设备上的主菜单,直到服务正常运行,但是当我将清除最近的应用程序中的所有后台应用程序时列表然后服务也停止。那么我怎样才能避免这样的事情。

2 个答案:

答案 0 :(得分:2)

您的子onStartCommand课程上的IntentService方法应返回Service.START_STICKY

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    //some code...
    return Service.START_STICKY;
}

然后该服务将继续在后台运行。

答案 1 :(得分:1)

  

当我从最近的应用程序列表中清除所有后台应用程序时,该服务也会停止

您可以使用startForeground()将其声明为前台服务。前台服务必须为状态栏提供通知,该通知位于"正在进行的"标题,这意味着除非服务被停止或从前台删除,否则不能解除通知。

 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);