2016-05-06 1 views
-1

В моем приложении для Android я хочу запустить Service без открытия и запуска моего приложения. Для этого я расширил класс BroadcastReciever. Но этот класс BroadcastReceiver не вызывается от AndroidManifest.xml по адресу BOOT_COMPLETE. Поэтому, пожалуйста, расскажите, в чем проблема в моем коде? Или есть ли другой способ запускать Service без открытия моего приложения? Я проверил поток управления моего кода и весь код работает отлично, проблема в том, что BroadcastReceiver не вызывается.BroadcastReceiver не вызывается из AndroidManifest на BOOT_COMPLETE в Android

Часть AndroidManifest.xml файла:

<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); 
    } 
} 
+1

Почему вы установили 'android: exported =" false "' for? –

+0

такой же результат даже после удаления это. @KhalidovOleg –

+0

Вы пытались удалить 'android: exported =" false "' для 'HelloService'? –

ответ

1

Удалить android:exported="false" из <receiver>. Это говорит о том, что вы не хотите, чтобы кто-либо (кроме вас) отправлял трансляцию этому получателю. В результате ваш приемник будет проигнорирован системой.

Помимо этого вам также необходимо выполнить операцию и выполнить эту операцию, прежде чем пытаться перезагрузить устройство. Возможно, у вас уже есть это, но я подумал, что упомянул об этом для полноты.

+0

еще такой же результат. @CommonsWare –

Смежные вопросы