android實現定時器
❶ android 定時器暫停 可以用canel()方法 但我又想再次喚起 用什麼方法
android 定時器是一個線程,線程canel 以後,只能重新new 並調用 start啟動。
具體實現代碼:
創建線程定時器同理
Thread thread = new Thread();
thread.start(); 啟動線程
當線程或定時器停止後,需要重新new
thread = new Thread();
thread.start(); 重新啟動線程或定時器
❷ 有關Android中定時器的問題
你這里犯了一個基本的錯誤。
你的timer是沒有問題的,問題在Toast.makeText(e201301.this, "ABCD", Toast.LENGTH_LONG).show();中。
另外你說沒有報錯,我不太相信,logcat裡面應該會有log出來的。除非你的logcat有問題。
另外把Toast.makeText(e201301.this, "ABCD", Toast.LENGTH_LONG).show();
換成其他基本的語句應該是不會有問題的。
這里的問題主要出在你用timer開了一個新線程,然後你希望在新線程裡面,直接在UI線程上顯示東西。於是就有錯了。
如果你只是為了測試timer,你可以把Toast.makeText(e201301.this, "ABCD", Toast.LENGTH_LONG).show();
換成Log.e("Timer在運行", "ABCD");
這樣你就會看到logcat裡面,按照你設定的時間,不斷的輸出這句LOG。也就是Timer正常運行了。
如果你依舊希望能在UI線程上顯示什麼,那麼你可以參考下線程間通信的handle、Message。或者簡單利用AsyncTask等
❸ android定時器alarmmanager和timer的區別
Java的Timer類可以用來計劃需要循環執行的任務。
簡單的說,一個Timer內部封裝裝了「一個Thread」和「一個TimerTask隊列」,這個隊列按照一定的方式將任務排隊處理。封裝的Thread在Timer的構造方法調用時被啟動,這個Thread的run方法按照條件去循環這個TimerTask隊列,然後調用TimerTask的run方法。
但是,如果CPU進入了休眠狀態,那麼這個thread將會因為失去CPU時間片而阻塞,從而造成我們需要的定時任務失效。上述定時任務失效的場景分析:假設定時任務的條件是到了時間xx:yy才能執行,但由於cpu休眠造成線程阻塞的關系,當前系統時間超過了這個時間,即便CPU從終端中恢復了,那麼由於條件不滿足,定時任務在這一次自然就失效了。
它需要用WakeLock讓CPU 保持喚醒狀態。這樣會大量消耗手機電量,大大減短手機待機時間。這種方式不能滿足需求。
AlarmManager是Android 系統封裝的用於管理RTC的模塊,RTC(Real Time Clock) 是一個獨立的硬體時鍾,可以在 CPU 休眠時正常運行,在預設的時間到達時,通過中斷喚醒CPU。這意味著,如果我們用 AlarmManager 來定時執行任務,CPU 可以正常的休眠,只有在需要運行任務時醒來一段很短的時間。
❹ android中定位百度地圖怎麼設置一個定時器每十分鍾
可以設置定位的時間間隔參數,然後在定位成功時候把數據post到相應的介面就可以上傳到伺服器啦android中定位網路地圖怎麼設置一個定時器每十分鍾
❺ android設置定時器調用時設置時間
你的意思是,假設3個RadioButton,第一個設為10秒,第二個設為20秒,第三個設為30秒,然後一起倒計時到0嗎?如果是這樣的話,只需要在Handler的handleMessage中去減時間就行了。
Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
xx.setText(Integer.parseInt(xx.getText()-1);
}
};
❻ android 確定時間點自動更新數據的定時器
這個定時器寫出來並沒有什麼難度,難點在於需要保證定時器不被殺死!寫一個service來作為更新數據的後台服務,然後利用廣播來保證此service不被殺死,即使殺死後仍能重啟!
❼ android service 做個定時器 時間到了無論在那個程序都會顯示對話框
只需要在service里彈出一個全局對話框即可,以下是示例代碼:
1.創建對象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("請輸入"); //設置對話框標題
builder.setIcon(android.R.drawable.btn_star); //設置對話框標題前的圖標
2.創建EditText輸入框
final EditText edit = new EditText(context);
3.將輸入框賦值給Dialog,並增加確定取消按鍵
builder.setView(edit);
builder.setPositiveButton("確認", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你輸入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你點了取消", Toast.LENGTH_SHORT).show();
}
});
4.設置常用api,並show彈出
builder.setCancelable(true); //設置按鈕是否可以按返回鍵取消,false則不可以取消
AlertDialog dialog = builder.create(); //創建對話框
dialog.setCanceledOnTouchOutside(true); //設置彈出框失去焦點是否隱藏,即點擊屏蔽其它地方是否隱藏
dialog.show();
❽ android 一個1小時倒計時定時器,怎麼做到關閉或退出頁面後定時器倒計時依
不用退出,直接按home鍵,保持後台運行就行了
❾ android定時器開發中如何實現不受時差的影
我不明白,定時器為什麼要受時差的影響。定時器不是倒計時走完一段時間而已。時差怎麼去影響到他
❿ android 定時器如何讓某天某個時間啟動
Android中使用AlarmManager進行定時操作,現在需要啟動多個定時器,但無論採用哪種方式後面的定時器都會將前面的定時器覆蓋掉(Android系統版本2.1),只啟動最後一個定時器,見代碼 Java code// 方式一for (int i = 0; i < 10; i ++) { ... AlarmManager am = null; am = (AlarmManager) context.getApplicationContext().getSystemService(Context.ALARM_SERVICE); ... Intent i = new Intent("xxx"); PendingIntent sender = PendingIntent.getBroadcast(context.getApplicationContext(), 0, i, PendingIntent.FLAG_UPDATE_CURRENT); ... am.setRepeating(...);}// 方式二AlarmManager am = null;am = (AlarmManager) context.getApplicationContext().getSystemService(Context.ALARM_SERVICE);for (int i = 0; i < 10; i ++) { ... Intent i = new Intent("xxx"); PendingIntent sender = PendingIntent.getBroadcast(context.getApplicationContext(), 0, i, PendingIntent.FLAG_UPDATE_CURRENT); ... am.setRepeating(...);} 請問如果要實現啟動多個定時器應該怎麼操作?Android系統的鬧鍾就是採用AlarmManager進行操作的,如何才能啟動多個定時器呢?先謝謝大家了 ------解決方案-------------------- public static PendingIntent getBroadcast(Context context, int requestCode, Intent intent, int flags) requestCode 需要是唯一的