1

起動時にAndroid2.1Galaxy S Phoneを起動しようとすると、クラッシュします。

context.startActivity(i)をコメントアウトした場合のレシーバーは、クラッシュしません。それ以外の場合は、電源投入時に表示されます。同じACTIONを使用する別のアクティビティからのstartActivityは、クラッシュを引き起こしません。これはブート中のようです。

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent();
        i.setAction("DISPLAY_FIRSTPAGE");
        context.startActivity(i);
    }
}

マニフェストに次のようにレシーバーを設定します。

<receiver android:name=".MyBroadcastReceiver">
             android:enabled="true" android:exported="false"
             android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter> 
</receiver>
4

3 に答える 3

2

何よりも先にログを見てください。この場合、問題 (元のコードと修正されたコードの両方) は、ログのクラッシュで明確に説明されます。

于 2011-03-16T22:19:52.343 に答える