我写了一个时间跟踪应用程序,在logcat中经常可以看到:
2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:02:25.140 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:02:40.192 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:02:53.216 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:02:54.128 3575-3575/? D/dalvikvm? GC_FOR_ALLOC freed 1094K, 19% free 6781K/8288K, paused 4ms, total 4ms
05-04 04:02:55.468 3575-3575/? I/Choreographer? Skipped 80 frames! The application may be doing too much work on its main thread.
05-04 04:02:56.524 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:03:08.504 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:03:19.584 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:03:23.792 65-65/? D/Genyd? Received Set Clipboard
05-04 04:03:23.792 65-65/? D/Genymotion? Received Set Clipboard
05-04 04:03:30.576 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:03:40.571 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:03:45.371 65-65/? D/Genyd? Received Set Clipboard
05-04 04:03:45.371 65-65/? D/Genymotion? Received Set Clipboard
05-04 04:03:48.575 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:03:58.599 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:04:08.691 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:04:11.659 3575-3575/? D/dalvikvm? GC_FOR_ALLOC freed 1094K, 19% free 6781K/8288K, paused 10ms, total 11ms
05-04 04:04:12.895 2028-2070/? D/MobileDataStateTracker? default: setPolicyDataEnable(enabled=true)
05-04 04:04:13.255 3575-3575/? I/Choreographer? Skipped 95 frames! The application may be doing too much work on its main thread.
Run Code Online (Sandbox Code Playgroud)
我有定时器的listview,每行有单独的线程.计数发生在单独的线程中,它们向处理程序发送空消息(仅用于激活他).这是我的模型中的代码片段:
private String name;
private Boolean isStart=false, isFinished=false;
private Long elapsedTime=0L,seconds=0L,hours=0L,minutes=0L,lastPause=0L,updateTime=0L,startTime=0L,days=0L,limitTime=0L;
class TrackerThread extends Thread{
public TrackerThread() {
super();
}
@Override
public void run() {
super.run();
try {
while (isStart){
if (isStart && startTime != 0) {
if (elapsedTime != 0 && updateTime == 0)
lastPause = elapsedTime;
updateTime = ((System.currentTimeMillis() - startTime) + lastPause);
seconds = updateTime / 1000;
minutes = seconds / 60;
hours = minutes / 60;
seconds = seconds % 60;
minutes = minutes % 60;
hours = hours % 24;
elapsedTime = updateTime;
handler.sendEmptyMessage(1);
sleep(1000);
}
}
}catch (Exception ex){
ex.printStackTrace();
}
}
}
Handler handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
holder.days.setText(String.format("%04d", days));
holder.hours.setText(String.format("%02d", hours));
holder.minutes.setText(String.format("%02d", minutes));
holder.seconds.setText(String.format("%02d", seconds));
if(limitTime!=0 && elapsedTime>limitTime) {
isFinished = true;
holder.stop.setVisibility(View.GONE);
holder.textFinish.setVisibility(View.VISIBLE);
holder.limDay.setVisibility(View.GONE);
holder.limMin.setVisibility(View.GONE);
holder.limHours.setVisibility(View.GONE);
holder.textLimit.setVisibility(View.GONE);
RemindMe.db.execSQL(Util.concat("UPDATE trackers SET isFinish=1, elapsedTime=",limitTime," WHERE _id=",getId()));
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1354 次 |
| 最近记录: |