我在我的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;
}
}