【发布时间】:2017-12-22 06:45:19
【问题描述】:
我试图停止我的服务,即使我的 destroy 方法也执行了,但我的服务没有停止。我已经尽力了。请帮帮我。
我的代码如下:
主活动
意图意图=新意图(this,Myservice.class);
启动服务(意图); //在开始按钮中。意图意图=新意图(this,Myservice.class);
停止服务(意图); //在停止按钮中。
我的服务
public class Myservice extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this,"runing",Toast.LENGTH_LONG).show();
{
myTherad th=new myTherad();
Thread thread=new Thread(th);
thread.start();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
Toast.makeText(this,"stop",Toast.LENGTH_LONG).show();
super.onDestroy();
}
class myTherad implements Runnable {
@Override
public void run() {
synchronized (this)
{
try {
for(int i=0;i<10;i++)
{
wait(1000);
Log.d("mfnhsdgjkfn","===="+String.valueOf(i));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
stopSelf();
}
}
}
【问题讨论】:
-
stopService(new Intent(this, MyService.class));并根据需要在服务的 OnDestroy 方法中处理服务停止过程
-
只是为了检查-您了解停止服务不会停止您的服务启动的线程,对吗?停止服务的代码不知道存在线程。你必须自己做。