如何在后台运行服务(不间断) - Android

时间:2016-05-07 13:37:30

标签: android

我在我的Android应用程序中创建了一个Service,它开始在BOOT_COMPLETE上运行。我想运行Service不间断(始终运行),为此我在while(true)方法中使用了onStartCommand()。那么使用while(true)是否可以,或者还有其他更好的方法可以在后台运行服务?

这是我的服务代码:

package com.example.abc.project1;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import org.json.*;
import java.io.*;
import java.net.*;
import java.util.*;


public class HelloService extends Service {

    private static final String TAG = "HelloService";
    private boolean isRunning  = false;

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        isRunning = true;
    }


    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                while(true) {
                    /*non-stop work to be done in background always*/
                }
            }
        }).start();
        return Service.START_STICKY;
    }


    @Override
    public void onDestroy() {
        isRunning = false;
    }

}

1 个答案:

答案 0 :(得分:0)

I have not tried这个我自己但是如果你把接收器换成服务它应该工作。