2012-03-21 169 views
0

我有一個類StartupReceiver:啓動廣播接收器根本沒有運行啓動

public class StartupReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    Intent service = new Intent(context, ARMRService.class); 
    context.startService(service); 
} 

,並聲明它在我的Manifest.xml作爲

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

,我已經給出了正確的權限:

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

爲什麼這不起作用???

+0

您的包中的StartupReceiver是爲應用程序定義的還是在單獨的包中? – iago 2012-03-21 17:39:45

+0

似乎它應該工作,你確定它不只是該服務的問題?您是否曾嘗試在BroadcastReceiver中添加日誌行或烤麪包以查看? – kabuko 2012-03-21 17:41:13

+0

是的,它定義在同一個包中的同一個應用程序中。 – comead 2012-03-21 17:41:51

回答

0

該代碼看起來不錯。你可以在onReceive()中添加一些日誌,並檢查是否在啓動時調用它。可能會有一些問題需要啓動。

+0

我做到了。是否有可能它沒有登錄到LogCat,因爲調試器尚未附加? – comead 2012-03-21 17:42:16

+0

Logcat會附加在電話啓動本身上。你不能在DDMS中獲得電話啓動日誌。理想情況下,它應該可用。僅僅爲了調試目的,爲什麼不用一個虛擬服務替換你的服務? – prijupaul 2012-03-21 18:17:01

+0

它不是服務,因爲當我從按鈕點擊開始它完美的作品。 – comead 2012-03-22 13:40:33