在服务的onStartCommand()方法中,应使用START_STICKY标志来确保服务正常运行。同时,务必使用多线程来避免服务占用UI线程,导致锁定UI。以下是一个示例代码:
public class MyService extends Service {
private boolean isRunning;
@Override
public void onCreate() {
super.onCreate();
isRunning = false;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
isRunning = true;
new Thread(new Runnable() {
@Override
public void run() {
// Do something here...
stopSelf();
}
}).start();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
isRunning = false;
}
}