0
我在活動安排timeatsk兩次(點擊按鈕兩次),像這樣:Timer.schedule在活動不同,廣播接收器
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_timer:
addTimer();
break;
}
}
private void addTimer(){
Log.e("----","------"+Thread.currentThread().getName());
if(timerTask == null){
timerTask = new TimerTask() {
@Override
public void run() {
timerCount++;
Log.e("----","------=="+Thread.currentThread().getName());
Log.e("------","------"+timerCount);
}
};
}
if(timer == null){
timer = new Timer();
timer.schedule(timerTask,1000,1000);
}
}
結果是:
但我schedue BroadcastReceiver中的相同任務兩次(單擊按鈕兩次): inActivity:
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_timer:
Intent intent = new Intent();
intent.setAction("timer");
this.sendBroadcast(intent);
break;
}
}
in broadcastReceiver:` @Override public void onReceive(Context context,Intent intent){ addTimer(); }
private void addTimer(){
Log.e("----",Thread.currentThread().getName());
if(timerTask == null){
timerTask = new TimerTask() {
@Override
public void run() {
timerCount++;
Log.e("----","------=="+Thread.currentThread().getName());
Log.e("------","------"+timerCount);
}
};
}
if(timer == null){
timer = new Timer();
timer.schedule(timerTask,1000,1000);
}
}`
但結果是 in two thread!
我使用計時器來計算我播放視頻的時間以及向服務報告秒數。視頻將停止並開始多次,所以應該發送多個廣播。如何解決問題? – shumengma
然後,您應該將秒發送到服務,而不是在服務中啓動計時器。你爲什麼需要一個計時器?你爲什麼不簡單地在「Date」變量中記錄開始時間,然後計算視頻停止播放時的播放時間。 – gjsalot
謝謝你,單題集是工作 – shumengma