创建一个即使应用程序杀死也始终在后台运行的服务

时间:2015-03-26 13:17:24

标签: android performance android-activity android-service alarmmanager

我想创建一个始终在后台运行的服务。我做了几次尝试,但是当我从最近的应用程序向上滑动应用程序时,我的服务总是停止。我通过在单独的过程中运行服务来尝试可用的解决方案

我也尝试从服务的onStartCommand返回START_STICKY,但这也没有用。请参阅示例图像,了解始终在后台运行的服务。即使whatsApp不在我最近的应用程序中,但服务未关闭。

请帮帮我。我很长时间都在苦苦挣扎。

这是我的代码

        public class service extends Service
{
    private static final String TAG = "MyService";
    public static String MAIN_ACTION = "main";
    public static String PREV_ACTION = "prev";
    public static String PLAY_ACTION = "play";
    public static String NEXT_ACTION = "next";
    public static int FOREGROUND_SERVICE = 101;

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
    public void onDestroy() {
        Log.d(TAG, "onDestroy");
        Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
    }


    public void onCreate() {
        Log.d(TAG, "Service created");
        super.onCreate();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(TAG, "onStart");
    Log.d(TAG, "Service started");
    processIntent(intent);

    Thread readerThread = new Thread(new Runnable() {
        @Override
        public void run() {

            while(true) {
                Log.d(TAG, "Thread present");
                try {
                    // thread to sleep for 1000 milliseconds
                    Thread.sleep(3000);
                } catch (Exception e) {
                    System.out.println(e);
                }
            }
        }
    });
    readerThread.start();
    }

}

我正在通过我的活动来调用它

  Intent i = new Intent(this, service.class);
  startService(i);

当应用程序运行时服务启动,我看到服务在运行应用程序中运行1个进程和1个服务但是当我刷出应用程序时,进程和服务都被杀死

谢谢

This is what I am trying to do

0 个答案:

没有答案