2013-12-15 155 views

回答

10
  1. 首先,你需要許可

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
    
  2. 然後在你的清單創建一個廣播接收機

    import android.content.BroadcastReceiver; 
    import android.content.Context; 
    import android.content.Intent; 
    
    public class Startup extends BroadcastReceiver { 
    
        public Startup() { 
        } 
    
        @Override 
        public void onReceive(Context context, Intent intent) { 
         // start your service here 
         context.startService(new Intent(context, SERVICE.class)); 
        } 
    
    } 
    
  3. 註冊這個廣播接收器作爲

    <receiver android:name="YOUR_PACKAGE.Startup" > 
        <!-- This intent filter receives the boot completed event --> 
        <intent-filter> 
         <action android:name="android.intent.action.BOOT_COMPLETED" /> 
        </intent-filter> 
    </receiver> 
    

注:也不能保證從設備啓動運行設備 服務關閉,在極端情況下,Android系統可能會殺死服務 還可得到額外的內存。

+0

對於應用用戶來說,服務始終保持活躍狀態​​非常重要。有沒有辦法確保android不會殺死該服務,除非它在極端負載下? –

+0

使用一個'IntentService'服務,如果服務在處理意圖時被終止,服務將被重新啓動,我還沒有想出其他方法。 –

+0

@twntee不同意。 IntentService應該在運行一次後停止,所以它不會一直運行。 –

相關問題