我已經創建了我的Android應用程序中的Service
這是工作的罰款。但是當我點擊stopButton
時,我想阻止它(完全死亡)。爲此,我編寫了此代碼,但是當單擊stopButton
時,此代碼不會停止該服務。所以請幫助。服務不停止在調用stopService()
服務
public class HelloService extends Service {
static 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() {
for (int i = 0; i < 20; i++) {
try{Thread.sleep(3000);}catch(Exception e){}
Log.e("Update", i + "", new Exception());
}
}
}).start();
return Service.START_NOT_STICKY;
}
@Override
public void onDestroy() {
isRunning = false;
stopSelf();
}
}
MainActivity
Button startButton = (Button)findViewById(R.id.start);
startButton.setOnClickListener(this);
startButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent startServiceIntent = new Intent(MainActivity.this, HelloService.class);
startService(startServiceIntent);
}
}
);
Button stopButton = (Button)findViewById(R.id.stop);
stopButton.setOnClickListener(this);
stopButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent stopServiceIntent = new Intent(MainActivity.this, HelloService.class);
stopService(stopServiceIntent);
}
}
);
我的理解是,你需要中斷/殺/停止該線程自己 –
您的代碼看起來不錯,你是如何驗證該服務沒有停止? – jimmy0251
'onStartCommand()'中的循環在調用'stopService()'時不會停止。 @ jimmy0251 –