Android: почему происходит сбой BroadcastReceiver?

1

У меня есть зарегистрированный ретранслятор вещания

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)
  • 0
    Привет ccheneson, спасибо за ответ. LogCat показывает сбой в context.startActivity (intentalarm); , Также я попробовал AlerDialog, который тоже, когда хиты alertDialogObj.show () аварийно завершают ... Нормальное намерение с параметром NotifyAlarm.class также аварийно завершает работу при попадании context.startActivity (intentObj); ? Я нахожусь в довольно наивной стадии, что я даже не могу понять, что происходит на уровне ОС.
Показать ещё 6 комментариев
Теги:
android-manifest

1 ответ

2
Лучший ответ

Попытайтесь добавить FLAG_ACTIVITY_NEW_TASK в свои намерения.

intentalarm.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  • 0
    Это тоже не сработало для меня. Я думаю, что я не понимаю реальное поведение BroadCasting. Я пытаюсь выучить это после нахождения хороших уроков. Если вы знаете какие-либо хорошие блоги, рассказывающие о BroadCasting в Android, дайте мне ссылку на него. Еще раз спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню