2010-05-24 2 views
2

Я пытаюсь вызвать фоновый сервис push-уведомления из класса BroadcastReceiver, но мое приложение выходит из строя. Код приведен ниже:Вызов фоновой службы от 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? 

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

ответ

4

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

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

+0

Oh !!! yaa ... спасибо CommonsWare ..... теперь его работа ... – Andy

1

Это нормально использовать C2DM для push-уведомления в Android ...... Пусть это будет ваше решение ......

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