當(dāng)前位置:
首頁 >
实现 Android 应用在开机时自启动
發(fā)布時間:2025/7/14
43
豆豆
生活随笔
收集整理的這篇文章主要介紹了
实现 Android 应用在开机时自启动
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
如果您在開發(fā)一個需要實(shí)時更新數(shù)據(jù)的應(yīng)用程序,當(dāng)有新的數(shù)據(jù)的時候提醒用戶查看新的數(shù)據(jù),那么您需要在后臺開起一個Service,然后實(shí)時的去網(wǎng) 絡(luò)上獲取數(shù)據(jù),但是如果用戶關(guān)機(jī)重啟,您的Service可能就消失了!那么怎么樣保證開機(jī)后你的Service還活躍的在用戶的手機(jī)里偷偷的從網(wǎng)絡(luò)上獲 取數(shù)據(jù)呢?
很簡單,我們只要實(shí)現(xiàn)開機(jī)自啟動即可,android實(shí)現(xiàn)開機(jī)自啟動可能是移動操作系統(tǒng)中最簡單的了,我們只需要監(jiān)聽一個開機(jī)啟動的 Broadcast(廣播)即可。首先寫一個Receiver(即廣播監(jiān)聽器),繼承BroadcastReceiver,如下所示:
[代碼] BootReceiver.java
view source print?| 01 | public class BootReceiver extends BroadcastReceiver { |
| 02 | private PendingIntent mAlarmSender; |
| 03 | @Override |
| 04 | public void onReceive(Context context, Intent intent) { |
| 05 | // 在這里干你想干的事(啟動一個Service,Activity等),本例是啟動一個定時調(diào)度程序,每30分鐘啟動一個Service去更新數(shù)據(jù) |
| 06 | mAlarmSender = PendingIntent.getService(context, 0, new Intent(context, |
| 07 | RefreshDataService.class), 0); |
| 08 | long firstTime = SystemClock.elapsedRealtime(); |
| 09 | AlarmManager am = (AlarmManager) context |
| 10 | .getSystemService(Activity.ALARM_SERVICE); |
| 11 | am.cancel(mAlarmSender); |
| 12 | am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, |
| 13 | 30 * 60 * 1000, mAlarmSender); |
| 14 | } |
| 15 | } |
[代碼] 我們只需要在應(yīng)用程序配置文件AndroidManifest.xml中注冊這個Receiver來監(jiān)聽系統(tǒng)啟動事件
view source print?| 1 | <receiver android:name=".service.BootReceiver"> |
| 2 | <intent-filter> |
| 3 | <!-- 系統(tǒng)啟動完成后會調(diào)用--> |
| 4 | <action android:name="android.intent.action.BOOT_COMPLETED"> |
| 5 | </action> |
| 6 | </intent-filter> |
| 7 | </receiver> |
轉(zhuǎn)載于:https://www.cnblogs.com/tuncaysanli/archive/2012/04/24/2468985.html
總結(jié)
以上是生活随笔為你收集整理的实现 Android 应用在开机时自启动的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net上传文件
- 下一篇: Android入门:DDMS视图