启动 Activity 时,我使用以下命令启动服务(或重新启动正在运行的服务):
Intent intent = new Intent(this, MyService.class); startService(intent);
稍后,基于某些操作,相同的 Activity 将使用

bindService(new Intent(this, MyService.class), mConnection, Context.BIND_AUTO_CREATE);

当 Activity 被销毁时,我打电话
unbindService(mConnection);

早些时候,当我从应用程序托盘中杀死同一 Activity /应用程序并在正在运行的应用程序下显示“正在运行的消息1进程1服务”时,该服务会重新启动。

现在,该服务不会在杀死相同的 Activity /应用程序后重新启动。

并且我收到消息“0进程1服务正在运行” ,这意味着该服务实际上未在运行。

该服务不会在应用程序关闭时重新启动。我的应用程序包含一个 Activity 。在系统引导后启动该服务后,该服务也会成功启动。

当我使用startService()启动服务时,为什么服务进程会被杀死?

编辑

从应用程序托盘关闭应用程序后,该服务用于更早地重新启动。但是现在突然有了SAME代码,事实并非如此。当我关闭其他应用程序时,也会发生这种情况。例如。

最佳答案

这是我遇到的一种解决方法,如果在关闭应用程序时其进程被终止,则重新启动服务的效果很好。在您的服务中,添加以下代码。

我在this线程中遇到了这种解决方法。

@Override
public void onTaskRemoved(Intent rootIntent){
    Intent restartServiceIntent = new Intent(getApplicationContext(), this.getClass());
    restartServiceIntent.setPackage(getPackageName());

    PendingIntent restartServicePendingIntent = PendingIntent.getService(getApplicationContext(), 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT);
    AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
    alarmService.set(
    AlarmManager.ELAPSED_REALTIME,
    SystemClock.elapsedRealtime() + 1000,
    restartServicePendingIntent);

    super.onTaskRemoved(rootIntent);
 }

似乎是杀死应用程序进程的错误。如果服务的进程被终止,则没有必要运行。

关于android - 从应用程序托盘中删除应用程序后,该服务的进程将被终止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20592366/

10-11 22:30
查看更多