1
我正在學習如何處理服務..我創建了一個小例子。 mainActivity向服務發送一個整數,服務使用該整數 作爲循環中的最大迭代次數,如代碼中所示。調用stopService後服務正在運行
的問題是,當我打電話stopService(意向),我還會收到值從張貼的服務類環below..i認爲當我打電話 stopService()的服務將被破壞
這是爲什麼hapenning?
服務:
public class MyService extends Service {
private final String TAG = this.getClass().getSimpleName();
final static String MY_ACTION = "MY_ACTION";
@Override
public void onCreate() {
Log.w(TAG, "onCreate");
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.w(TAG, "onStartCommand");
int max = intent.getIntExtra("MAX", -1);
Log.v(TAG, "Act->Service : " + max);
MyThread myThread = new MyThread();
myThread.start();
return Service.START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
Log.w(TAG, "onBind");
return null;
}
class MyThread extends Thread {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1500);
Intent intent = new Intent();
intent.setAction(MY_ACTION);
intent.putExtra("value", i);
sendBroadcast(intent);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
stopSelf();
}
}
}
你必須等到你的線程完成其運行方法 – Blackbelt