如果用户从应用程序管理器停止应用程序,则要重新启动服

时间:2014-09-10 13:26:12

标签: android service restart

我使用服务类

中的代码段来使用粘性Android服务
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}     

但是只有在Android o / s关闭应用程序强制关闭时才重新启动,虽然当用户强制停止应用程序管理器中的应用程序时,服务也会终止。 但是,我的要求是我希望永远运行服务,直到应用程序安装在设备中。 有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:0)

经过长时间的研究和博客推荐,如果用户单击从应用程序管理器中强制关闭应用程序,则无法自动重新启动。

但是,可以通过以下广播来解决停止服务的问题,例如-USB检测,蓝牙状态更改,设备重启等。在这种情况下,设备会发送广播,并且如果您的应用能够接收这些通知,则可以重启从广播中收到的上下文中提供您的服务。

答案 1 :(得分:-1)

您可以使用Forground Service让您的服务保持活力。

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

    Notification notification=new Notification(R.drawable.icon,"The Service Is Running",System.currentTimeMillis());
    Intent j=new Intent(this, Activity.class);
    PendingIntent pi=PendingIntent.getActivity(this, 0,
            j, 0);

    notification.setLatestEventInfo(this, "Notification Message", "RunningService", pi);
    notification.flags|=Notification.FLAG_NO_CLEAR;

    startForeground(1, notification);


    return START_STICKY;
}

答案 2 :(得分:-1)

它不可能。但是你可以使用前台服务。在内存不足的情况下,android os可以杀死前台服务