安卓手機怎麼設置自動觸發
1. android 後台運行 並定時觸發任務
Android中的定時任務一般有兩種實現方式,一種是使用Java
API里的Timer類,另一種是使用Android的Alarm機制。
這兩種方式在多數情況下都能實現類似的效果,但Timer有一個明顯的短板,它並不太適用與那些需要長期在後台運行的定時任務。As we
know,為了能讓電池更加耐用,每種手機都會有自己的休眠策略:比如手機不用的時候智能的斷開wifi連接,根據光線強弱自動調節屏幕亮度,根據手機長時間無操作時自動的讓CPU進入到休眠狀態等,當進入休眠狀態時,這就有可能導致Timer中的定時任務無法正常運行。而Alarn機制則不存在這種情況,它具有喚醒CPU的功能,即可以保證每次需要執行定時任務的時候CPU都能正常工作。需要注意的是,這里的喚醒CPU和喚醒屏幕不是同一個概念,不能混淆。
這里我們只說Alarm機制的方式,代碼如下:
public class AutoUpdateService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
// 每次服務啟動的時候調用
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new Thread(new Runnable() {
@Override
public void run() {
doSomething();//這是定時所執行的任務
}
}).start();
AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
int anHour =8 * 60 * 60 * 1000;// 這是8小時的毫秒數 為了少消耗流量和電量,8小時自動更新一次
long triggerAtTime = SystemClock.elapsedRealtime() + anHour;
Intent intent2 = new Intent(this, AutoUpdateReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent2, 0);
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);</span>
return super.onStartCommand(intent, flags, startId);
}
注意這里的AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);此處實現了定時任務。
首先我們通過調用Context的getSystemService()方法來獲取AlarmManager的實例,這里需要傳入的參數是ALARM_SERVICE.
接下來調用AlarmManager的set()方法就可以設置一個定時任務了,比如設定一個任務在5秒鍾後執行,就可以寫成 long
triggerAtTime = SystemClock.elapsedRealtime() + 5*1000;
manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime,
pi);
其中第一個參數是一個整形參數,用於指定AlarmManager的工作類型,有四種值可以選,分別是
ELAPSED_REALTIME、ELAPSED_REALTIME_WAKEUP、RTC和RTC_WAKEUP。其中ELAPSED_REALTIME表示讓定時任務的觸發時間從系統開機開始算起,但不會喚醒CPU。ELAPSED_REALTIME_WAKEUP同樣表示讓定時任務的觸發時間從系統開機開始算起,但會喚醒CPU。RTC表示讓定時任務的觸發時間從1970年1月1日0點開始算起,但不會喚醒CPU。RTC_WAKEUP同樣表示讓定時任務的觸發時間從1970年1月1日0點開始算起,但會喚醒CPU。使用SystemClock.elapsedRealtime()方法可以獲取到系統開機至今所經歷時間的毫秒數,使用System.currentTimeMillis()方法可以獲取到1970年1月1日0點至今所經歷時間的毫秒數。
然後看一下第二個參數,這個參數就好理解多了,就是定時任務觸發的時間,以毫秒為單位。如果第一個參數使用的是ELAPSED_REALTIME或ELAPSED_REALTIME_WAKEUP,則這里傳入開機至今的時間再加上延遲執行的時間。如果第一個參數使用的是RTC或RTC_WAKEUP,則這里傳入1970年1月1日0點至今的時間再加上延遲執行的時間。
第三個參數是一個PendingIntent,這里我們一般會調用getBroadcast()方法來獲取一個能夠執行廣播的PendingIntent。這樣當定時任務被觸發的時候,廣播接收器的onReceive()方法就可以得到執行。
當然設定一個任務在10秒鍾後執行還可以寫成:
longtriggerAtTime =
System.currentTimeMillis() + 10 * 1000;
manager.set(AlarmManager.RTC_WAKEUP,triggerAtTime,
pendingIntent);
然後創建PendingIntent指定處理定時任務的廣播接收器AutoUpdateReceiver。
import service.AutoUpdateService;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class AutoUpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, AutoUpdateService.class);
context.startService(i);
}
}
當啟動AutoUpdateService後,就會在onStartCommand()方法里設定一個定時任務,這樣每8個小時AutoUpdateReceiver的onReceive()方法就會得到執行,這樣就又會啟動AutoUpdateService服務,形成了永久的循環,保證服務每隔一段時間就會啟動一次,這樣就完成了一個長期在後台運行的服務。
我們在哪裡啟動服務呢,這要看具體的情況了,一般的話,當我們打開程序的時候啟動一次就好了
比如寫在Activity的onCrete()方法里
Intent
intent =new Intent(this,AutoUpdateService.class);
startService(intent);
最後,既然我們用到了服務和廣播接收器,那麼就得在AndroidManifest.xml中注冊才行。
<service android:name="service.AutoUpdateService" ></service>
<receiver android:name="receiver.AutoUpdateReceiver"
></receiver>
本文參考資料:《第一行代碼》
2. 安卓手機如何指定APP開機自動啟動到前台
測試項目的時候實在一個android系統的車載終端上進行的,因為沒有終端沒屏幕操作起來比較麻煩,所以乾脆把用到的app寫成開機自動運行,就可以了。感覺不是很困難,我就答應了大師兄的這個要求,然後就在網上查詢相關的代碼。最終找到了這個可以完美運行,不知道是不是有bug或者有更好的方法,希望大家指點。 首先說一下我所知道的這個代碼是如何實現的。android系統在開機的過程中(可能是最後)會發送一個廣播android.intent.action.BOOT_COMPLETED,這個廣播的意思就是設備告訴我們「」我已經開機了!」然後我們可以在代碼中用一個廣播接受者來接受這個廣播,然後觸發開啟app應用的操作。首先在你的工程上建一個廣播接受的類來:
3. 安卓手機如何設置開機自動運行指定的軟體
這個你可以在應用設置裡面設置自動啟動的 就在設置裡面就可以找到
4. 安卓手機怎麼關閉軟體開機自啟動
關閉手機中自動啟動的軟體需要在設置中設定,打開手機桌面上的設置功能。
5. 如何實現安卓的按鈕自動觸發,
使用
layout.addview(
imagebutton
,
layoutparams
).
根據你的button的數量判斷layoutparams的屬性,放在具體的哪個地方。
6. 安卓手機怎麼樣設置軟體自動運行
安卓手機只有設置軟體後台自啟動,沒有自動運行軟體的能力,哪些軟體允許自啟動,哪些軟體不允許後台啟動可以設置,在自啟動管理裡面設置
7. 安卓手機怎麼設置來電自動接聽
材料准備:安卓智能手機一部。
具體步驟如下:
1、首先打開手機主頁面,找到「手機"選項並點擊進入。
8. android 怎麼樣讓按鈕自動執行點擊事件
你向按鈕發WM_COMMAND吧
或者用mouse_event模擬滑鼠點擊
*...看錯...原來是Android...樓主請無視我的回復...
9. 手機能不能設置自動開關機怎麼設置
一、定時自動開機
此功能需要在主機主板的BIOS中設定,並且你的主板的高級電源管理設置必須支持這個功能,不過現在大多數的主板完全支持。(這里選擇DELL Vostro 200為演示機)
1.啟動系統按DEL,進入BIOS,然後選中 "Power Management Setup" (電源管理設置)
2.回車進入,在電源窗口中找到「Remote Wake Up」,通過方向鍵選擇「On」,(由於不同的主板的BIOS不一樣,有些主板的設置可能與上面的有一點點不同,但只要記住在電源管理中找到"Wake Up"字樣的就行了,因為這是設置定時開機的選項) 。然後在「Auto Power On」 項中選擇「Enabled」
3.在上圖中的「Auto Power On Date」選項中,其鍵值設為0,為每天定時開機。而「Auto Power On Time」選項則是表示開機時間,自己選擇,上圖的自動開機時間為每天的凌晨「00:00:00」。全部設置好後,按F10,保存並重新啟動即可。
二、定時自動關機
1. 我們要求系統到達指定時間內就會自動關機,還是選用操作系統自帶的任務計劃程序和shoudown.exe程序。單擊「開始」→「運行」或者是直接快捷鍵( Win + R ) →在命令欄中輸入」taskschd.msc」,然後「確定」!
2.在「任務計劃程序」的右邊選擇「創建基本任務」。首先定義名稱:PC Off(隨便定義)。
3.點擊「觸發器」里 「新建」,彈出的新建觸發器里,選擇「每天」,我們要求是每天18:00自動關機,然後點擊「確定」。
4.點擊「操作」,然後「新建」,在新窗口中創建一個啟動程序「shutdown.exe」,而參數添加「-s」是執行後退出,然後點擊「確定」。
5.完成所有的參數後,點擊創建任務的窗口的「確定」,然後彈出一個對話框,把對應的用戶名和密碼填寫正確,然後點擊「確定」即可。
6.到指定時間後就會有顯示一分鍾後關閉的提示,如下圖,然後一分鍾後系統就自動關閉。
7.我們設定了機器每天都是在指定的時間內開機的,但星期六星期天我們不需要開著機器,那我們可以通過在自定義多計劃任務,計劃在開機後10分鍾後關閉機器。