2013-03-21 44 views
6

我與Android合作。啓動服務在系統啓動而不是整個Android應用

我有一個應用程序我的工作使用一個活動到接着被用於由服務提供根據這些值的警報設置特定用戶輸入的值。做了研究,我決定如何讓手機啓動時啓動應用程序,但是,我真正想要的是啓動服務,但不會將應用程序加載到屏幕上。目前,當我打開設備時,整個應用程序會加載到屏幕上,然後我必須退出。

我已經下載有接口的設置,但其他在後臺運行類似的計劃。這是如何完成的?

+0

什麼操作系統? – nunzabar 2013-03-21 19:58:14

+0

對不起。我正在使用Android。特別是API 10. – user2196720 2013-03-21 20:08:30

+3

發表一些代碼。你實現了一個BroadcastReceiver(我假設),但是你在'onReceive'中究竟做了什麼? context.startService()? – 2013-03-21 20:25:45

回答

22

首先,你必須創建一個接收器:

public class BootCompletedReceiver extends BroadcastReceiver { 

    final static String TAG = "BootCompletedReceiver"; 

    @Override 
    public void onReceive(Context context, Intent arg1) { 
     Log.w(TAG, "starting service..."); 
     context.startService(new Intent(context, YourService.class)); 
    } 
} 

然後,添加許可到AndroidManifest.xml:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

和登記意向接收器:

<receiver android:name=".BootCompletedReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

這是後完成後,您的應用程序(Application類)將與服務一起運行,但沒有任何活動。

啊,不要把你的SD卡(APP2SD或類似的東西)上的應用程序,因爲它必須駐留在主存儲系統啓動完畢後,可用的權利。

+0

感謝您的回覆。你確定我確實是在做正確的事情。它不起作用的原因是該服務需要來自活動的數據,該活動在活動開始之前不可用。不過,我已經想出了一個解決方法。非常感激! – user2196720 2013-03-22 13:11:51

相關問題