2012-12-10 281 views
1

我嘗試了一些我在網上找到的啓動啓動時的活動的解決方案。目前,我有:在啓動時啓動應用程序會使應用程序崩潰

清單:

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

    <receiver android:name="App_Receiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
    </receiver> 

主要活動:

public void onReceive(Context context, Intent intent) { 

    if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))) 
    {   

     // Start the service or activity 
     Intent startActivity = new Intent();  
     startActivity.setClassName("org.package_name", "org.package_name.MainActivity"); 
     startActivity(startActivity);  

    } 
} 

然而,當我開機的手機,我讓我的應用程序已停止以意想不到的方式錯誤(即崩潰)。我做錯了什麼想法? (測試在Android 2.2,API 8)

+0

請分享堆棧跟蹤。 – Faizan

+0

@Faizan我正在調試它沒有一個真正的設備,所以我不知道如何做到這一點,因爲當我關閉設備時,調試模式停止 – Cemre

+0

需要看堆棧跟蹤的理解。 LogCat eclipse iDE ..或者你可以從市場上獲得一個應用程序aLogcat。但是在這裏提供堆棧跟蹤:) – Faizan

回答

1

啓動完成需要與接收器的名稱android.permission.RECEIVE_BOOT_COMPLETED permission.

編輯請寫包名。

<receiver android:name="org.package_name.App_Receiver"> 

Intent startActivity = new Intent(context, MainActivity.class);  
startActivity(startActivity);  
+0

我有抱歉沒有包括它。現在編輯 – Cemre

+0

@Cemre檢查我編輯的答案。 –

+0

我現在試過,但不幸的是仍然崩潰 – Cemre

0

像上面貼了答案:它需要的權限,以及:

startActivity.setClassName("org.package_name", "org.package_name.MainActivity"); 

確保您已聲明清單文件,該活動市民,也請提供一個堆棧跟蹤正是看到這個問題。

在清單中的活動聲明的一個例子:

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name"> 
    </activity> 
+0

謝謝。我該如何宣佈活動公開? – Cemre

+0

只是在xml中「正常」的方式,但需要在清單中聲明,否則你會得到錯誤/崩潰。 – 2012-12-10 10:49:30

+0

它已經宣佈。它也有這個: Cemre