1

我看过很多教程说要做到这一点,我必须使用服务。看了一个youtube视频后,得到了这个:

public class MyService extends Service {
    public MyService() {
    }

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

        onTaskRemoved(intent);

        Toast.makeText(this, "Service", Toast.LENGTH_SHORT).show();

        return START_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }

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

我必须使用MainActivity调用此服务startService(new Intent(this, MyService.class));

这工作正常。即使我从最近的应用程序中关闭该应用程序。但是当我从设置中强制停止应用程序时,该服务不再起作用。

即使应用程序被强行杀死,有什么方法可以保持应用程序运行?

4

1 回答 1

0

您现在可以注册您的应用程序以从通常为 firebase 的 google play 服务获取推送通知。您可以通过从服务器上的 firebase Amin ask 向您的应用发送推送通知来启动您的服务。

注意:由于 android pie 运行服务的方式发生了变化。因此,在做任何事情之前,请先阅读 android pie services docs

于 2019-09-22T18:55:54.887 回答