在android中振动手机后停止服务?
我正在尝试学习android中的服务。我的目标是,我将向服务传递一个LatLng对象,然后服务将对此进行处理,当工作完成时,它将在手机上嗡嗡响一段时间并停止。最后,服务将完成。现在我有一些疑问: 我将从我的应用程序调用该服务,但用户可以关闭我的应用程序 服务未完成。服务是否将执行由我的应用或 它也将完成 我在这里学习的内容是,服务将继续执行,有一件事我不必向发起服务的活动返回任何内容。我已经编写了一些代码。有人能帮我吗在android中振动手机后停止服务?,android,service,Android,Service,我正在尝试学习android中的服务。我的目标是,我将向服务传递一个LatLng对象,然后服务将对此进行处理,当工作完成时,它将在手机上嗡嗡响一段时间并停止。最后,服务将完成。现在我有一些疑问: 我将从我的应用程序调用该服务,但用户可以关闭我的应用程序 服务未完成。服务是否将执行由我的应用或 它也将完成 我在这里学习的内容是,服务将继续执行,有一件事我不必向发起服务的活动返回任何内容。我已经编写了一些代码。有人能帮我吗 public class MapService extends Servic
public class MapService extends Service {
private boolean isRunning = false;
@Override
public void onCreate() {
Log.i(TAG, "Service onCreate");
isRunning = true;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(TAG, "Service onStartCommand");
//Creating new thread for my service
//Always write your long running tasks in a separate thread, to avoid ANR
new Thread(new Runnable() {
@Override
public void run() {
//here i will do my work
if(isRunning){
Log.i(TAG, "Service running");
}
}
//Stop service once it finishes its task
stopSelf();
}
}).start();
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent arg0) {
Log.i(TAG, "Service onBind");
return null;
}
@Override
public void onDestroy() {
isRunning = false;
Log.i(TAG, "Service onDestroy");
}
}
如果用户关闭应用程序,它会工作吗?是,即使用户关闭应用程序,此服务也会运行。如果android系统要求内存,也可能会停止服务,但它会重新启动
由于您已在Android KitKat及以上版本(4.4+)上的onStartCommand中设置了标志START\u STICKY,因此,如果用户刷卡导致应用程序死机,且系统不会重新启动该应用程序,则服务将停止。请参阅此讨论()。如果应用程序被Android系统本身停止(资源不足),服务将在一段时间后重新启动(使用
START\u STICKY
标志)
在Android 4.3及以下版本上,无论应用程序是由系统还是用户停止,服务都将重新启动(使用START\u
标志)
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// We want this service to continue running until it is explicitly stopped, so return sticky.
return START_STICKY;
}