1

電話を再起動してからアプリを開くときにアクティビティを開始しようとしている、または起動が完了したときにトーストを表示しようとしています

 class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
        Intent serviceIntent = new Intent(context, MyIntentService.class);
        context.startService(serviceIntent);
    }
}

}

これは私のBroadcaste受信機コードです

 class MyIntentService extends Service {
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onCreate() {
    super.onCreate();
    Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
    // do something when the service is created
}

}

これは私のサービスコードです。

マニフェスト

 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">


    <receiver
        android:name=".MyReceiver"
        android:enabled="true"
        android:exported="false">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>
    </receiver>

    <service android:name=".MyIntentService"></service>
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

多くの異なるコードを試していますが、誰も私のために働かないので、誰かがこのコードを修正するのを手伝ってくれますか

4

2 に答える 2

1

BroadcastReceiverマニフェスト エントリにこれがあるため、呼び出されることはありません。

    android:exported="false"

それを削除します。

注: また、電話にアプリをインストールした後、少なくとも 1 回は手動でアプリを起動する必要があります。そうしBroadcastReceiverないと、 BOOT_COMPLETE を取得できませんIntent

注: また、Toastデバッグ支援として使用することはあまり良い考えではありません。メッセージを logcat に書き込み、それを使用して、デバッグ ツールとして信頼性が低いかどうかを判断する必要Serviceがあります。Toast

于 2016-01-05T13:29:07.630 に答える