0

スケジュールされたイベントを処理するように BroadcastReceiver をセットアップしようとしています。私はhttp://mobile.tutsplus.com/tutorials/android/android-fundamentals-scheduling-recurring-tasks/をフォローしており、機能が機能していた、またはそう信じていました。誰かがなぜそれが現在機能していないのかを見つけるのを手伝ってくれますか?

レシーバーは次のとおりです。

public class ScheduledEventReceiver extends BroadcastReceiver {
private static final String DEBUG_TAG = "ScheduledEventReceiver";

@Override
public void onReceive(Context context, Intent intent) {
    Log.d(DEBUG_TAG, "ScheduledEventReceiver " + intent.getData());
    Intent activity = new Intent(context, Model.class);
    activity.setData(intent.getData());
    context.startService(activity);
}
}

そしてマニフェストのビット:

    <receiver android:name=".receiver.ScheduledEventReceiver" />

そして、Intent を送信している DialogFragment から:

private void setEventTest(Calendar time) {
    setEvent(getActivity(), Uri.parse("http://teststring"), time);
}

private void setEvent(Context context, Uri data, Calendar when) {
    Intent intent = new Intent(context, ScheduledEventReceiver.class);
    intent.setData(data);
    PendingIntent scheduledEvent = PendingIntent
            .getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager schedule = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE);
    schedule.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), scheduledEvent);
}

機能していないと思う理由は、onReceive からのログ出力が表示されないためです。

4

1 に答える 1

1

受信者が実際にアクティビティのサブパッケージに含まれていることを確認してください。そうでない場合は、「.receiver」を削除してください。

<receiver android:name=".receiver.ScheduledEventReceiver" />
于 2013-01-21T03:42:57.013 に答える