閱讀66 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android中如何做到Service被關閉後又自動啟動

如何做到啟動一個Service,並且在用戶關閉後能自動又啟動了呢?

 

一般的,都會在上麵說到的BroadcastReceiver的實現裏麵,監聽手機啟動完成後,啟動一個Service,這是一般的做法。問題是,用戶可以關閉掉該Service。那麼怎樣才能使它被關閉掉以後,再次啟動呢?聰明的你一定立即就想到了,如果不直接啟動Service,而是啟動一個timmer,或者alarmManager,然後每隔一段時間去啟動Service,就可以了。


package com.arui.framework.android.daemonservice;  
  
import android.app.AlarmManager;  
import android.app.PendingIntent;  
import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.Intent;  
import android.os.SystemClock;  
  
public class BootBroadcast extends BroadcastReceiver {  
  
    @Override  
    public void onReceive(Context context, Intent mintent) {  
  
        if (Intent.ACTION_BOOT_COMPLETED.equals(mintent.getAction())) {  
            // 啟動完成  
            Intent intent = new Intent(context, Alarmreceiver.class);  
            intent.setAction("arui.alarm.action");  
            PendingIntent sender = PendingIntent.getBroadcast(context, 0,  
                    intent, 0);  
            long firstime = SystemClock.elapsedRealtime();  
            AlarmManager am = (AlarmManager) context  
                    .getSystemService(Context.ALARM_SERVICE);  
  
            // 10秒一個周期,不停的發送廣播  
            am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstime,  
                    10 * 1000, sender);  
        }  
  
    }  
}  

具體看這個:

https://blog.csdn.net/arui319/article/details/7040980

最後更新:2017-04-02 06:52:14

  上一篇:go Java用native2ascii命令做unicode編碼轉換
  下一篇:go MyEclipse10 Tomcat7 JDK1.7 配置