2010-02-19 22 views
1

У меня есть этот приемник Broadcast зарегистрированAndroid: Почему BroadcastReceiver рушится?

public class NotifyAlarmBroadcast extends BroadcastReceiver{ 
    public Context context; 
    public static final String NOTI = "android.intent.action.MAIN"; 
// actually i want NOTI = "com.sumit.timekeeper.NotifyAlarm" 
// this too is not working 
// help me here please 

@Override 
public void onReceive(Context _context, Intent intent) { 
    context = _context; 
    Uri data = intent.getData(); 
    String reason = intent.getStringExtra("alarm_reason"); 
    Intent intentalarm = new Intent(NOTI, data); 

    intentalarm.putExtra("reason", reason); 
    context.startActivity(intentalarm); 
} 

}

и манифеста

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".TimeKeeperStartActivity" 
     android:screenOrientation="portrait" android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".NotifyAlarm" 
     android:screenOrientation="portrait" android:theme="@android:style/Theme.Dialog"> 
     <intent-filter> 
      <action android:name="com.sumit.timekeeper.NotifyAlarm"> 
      </action> 
     </intent-filter> 
    </activity> 

    <receiver android:name=".NotifyAlarmBroadcast"> 
     <intent-filter> 
      <action android:name="com.sumit.timekeeper.NotifyAlarmBroadcast" /> 
     </intent-filter> 
    </receiver> 
</application> 

но когда линия достигает context.startActivity (intentalarm); сбой приложения

Может быть, это где мы передаем первый параметр Intent, я не знаю о , пожалуйста, помогите мне.

+0

Вы можете получить более подробную информацию о аварии от LogCat (DDMS -> вкладка LogCat) – ccheneson

+0

Привет ccheneson, спасибо за ответ. LogCat показывает сбой при context.startActivity (intentalarm); , Также я попробовал AlerDialog, что тоже при ударах alertDialogObj.show() сбой ... Нормальное намерение с параметром NotifyAlarm.class также сбой при обращении context.startActivity (intentObj); ? Я нахожусь в довольно наивной стадии, что я даже не понимаю, что происходит на уровне ОС. –

+0

Единственное, что работает отлично, это тост, он не сбой, когда он достигает toastObj.show() –

ответ

2

Попробуйте добавить флаг FLAG_ACTIVITY_NEW_TASK в свои намерения.

intentalarm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
+0

Это тоже не сработало для меня. Я думаю, что не понимаю реального поведения BroadCasting. Я пытаюсь изучить его, найдя несколько полезных уроков. Если вы знаете хорошие блоги, объясняющие BroadCasting на Android, пожалуйста, дайте мне ссылку на него. Еще раз спасибо. –

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