Вызов фонового сервиса от BroadcastReceiver - PullRequest
2 голосов
/ 24 мая 2010

Я пытаюсь вызвать фоновую службу push-уведомлений из класса BroadcastReceiver, но мое приложение вылетает. Код приведен ниже:

public class AlarmReceiver extends BroadcastReceiver {

    static int count=1;

    @Override
    public void onReceive(Context context, Intent intent) {

        Intent myIntent=new Intent(context,NotifyService.class);
        myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        context.startActivity(myIntent);  
    }
} 

Запись манифеста:

<receiver android:name=".AlarmReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>
<service android:name=".NotifyService">
</service>

Ошибка:

05-24 15:17:00.042: ERROR/AndroidRuntime(424): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.alarm/com.android.alarm.NotifyService}; have you declared this activity in your AndroidManifest.xml?

Когда я вызываю этот сервис через Activity, он работает, но моя цель - вызвать этот сервис из BroadcastReceiver.

Ответы [ 2 ]

4 голосов
/ 24 мая 2010

AlarmReceiver звонит startActivity(), а не startService(). Вы запускаете услуги с startService(); вы начинаете деятельность с startActivity().

Кроме того, услуги не нужны (или использовать, AFAIK) FLAG_ACTIVITY_NEW_TASK.

1 голос
/ 30 июля 2010

Можно использовать C2DM для push-уведомлений в Android ...... Возможно, это будет вашим решением ......

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...