Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android系統自動實現開機啟動

Android系統自動實現開機啟動

編輯:Android開發實例

我們在前面已經講過了Android開發:自由選擇TextView的文字如何實現TCP和UDP傳輸。如果您在開發一個需要實時更新數據的應用程序,當有新的數據的時候提醒用戶查看新的數據,那麼您需要在後台開起一個Service,然後實時的去網絡上獲取數據,但是如果用戶關機重啟,您的Service可能就消失了!那麼怎麼樣保證開機後你的Service還活躍的在用戶的手機裡偷偷的從網絡上獲取數據呢? 

很簡單,我們只要實現開機自啟動即可,Android實現開機自啟動可能是移動操作系統中最簡單的了,我們只需要監聽一個開機啟動的Broadcast(廣播)即可。首先寫一個Receiver(即廣播監聽器),繼承BroadcastReceiver,如下所示:

  1. public class BootReceiver extends BroadcastReceiver {  
  2.  private PendingIntent mAlarmSender;  
  3. @Override  
  4.  public void onReceive(Context context, Intent intent) {  
  5. // 在這裡干你想干的事(啟動一個Service,Activity等),本例是啟動一個定時調度程序,每30分鐘啟動一個Service去更新數據  
  6.  mAlarmSender = PendingIntent.getService(context, 0, new Intent(context,  
  7. RefreshDataService.class), 0);  
  8. long firstTime = SystemClock.elapsedRealtime();  
  9. 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.     }  

接下來,我們只需要在應用程序配置文件AndroidManifest.xml中注冊這個Receiver來監聽系統啟動事件即可,如下所示:

  1. <receiver android:name=".service.BootReceiver"> 
  2. <intent-filter> 
  3.  <!-- 系統啟動完成後會調用--> 
  4. <action android:name="android.intent.action.BOOT_COMPLETED"> 
  5.  </action> 
  6.  </intent-filter> 
  7. </receiver> 

就這樣,我們就實現了系統自啟動,怎麼樣?是不是很簡單?

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved