0

起動時にアクティビティを起動するために、オンラインで見つけたいくつかのソリューションを試しました。現在私は持っています:

マニフェスト:

<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 でのテスト)

4

2 に答える 2

1

ブート完了には、 android.permission.RECEIVE_BOOT_COMPLETED permission.

編集パッケージ名と受信者名を書いてください。

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

Intent startActivity = new Intent(context, MainActivity.class);    
startActivity(startActivity);      
于 2012-12-10T10:37:47.380 に答える
0

上記の回答のように、許可が必要です。

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

マニフェスト ファイルで Activity public を宣言していることを確認してください。また、問題を正確に確認するためにスタック トレースを提供してください。

マニフェストでのアクティビティ宣言の例:

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name">
    </activity>
于 2012-12-10T10:39:45.103 に答える