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