私のAndroidアプリケーションでは、自分のアプリケーションを開いたり実行したりせずにService
を実行します。そのために私はBroadcastReciever
クラスを拡張しました。しかしこのBroadcastReceiver
クラスはAndroidManifest.xml
からBOOT_COMPLETE
に呼び出されていません。だから私のコードの問題は何ですか?または、アプリケーションを開かずにService
を実行する他の方法はありますか?私は自分のコードの制御フローをチェックしており、コード全体が完全に動作していますが、問題はBroadcastReceiver
が呼び出されていないということです。 AndroidManifest.xmlファイルのAndroidのBOOT_COMPLETEでBroadcastReceiverがAndroidManifestから呼び出されていない
パート:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<service android:name=".HelloService"
android:exported="false"/>
<receiver android:name=".MyBroadcastreceiver" android:enabled="true" android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
MyBroadcastreceiver.javaクラス
package com.example.abc.project1;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class MyBroadcastreceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
/*this is not being called*/
Intent startServiceIntent = new Intent(context, HelloService.class);
context.startService(startServiceIntent);
}
}
なぜあなたは 'android:exported =" false "'を設定しましたか? –
それを取り除いても同じ結果になります。 @KhalidovOleg –
'HelloService'のために' android:exported = "false" 'を削除しようとしましたか? –