0

私のアプリケーションにはリマインダーを設定する機能があります。このようなリマインダーを作成しています

           Intent intent = new Intent(Context,ReminderActivity.class);

    intent.putExtra(ResolutionsListActivity.RESOLUTION_OBJECT, resolution);

    PendingIntent sender = PendingIntent.getBroadcast(
    ComposeResolutionActivity.this,intent,PendingIntent.FLAG_UPDATE_CURRENT);

          AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
            interval, sender);

解決 --- シリアライズ可能なオブジェクト。

ここで、ReminderActivity クラスはブロードキャスト レシーバーを拡張します。

このようにマニフェストでレシーバーを宣言しました

       < receiver android:name="com.webileapps.resolutions.ReminderActivity"
        android:process=":remote" />

私のreminderactivityクラスでは、トリガーされたアラームをキャッチして通知を表示しています。

    public class ReminderActivity extends BroadcastReceiver {
private static final String TAG = "ReminderActivity";

@Override
public void onReceive(Context context, Intent intent) {
    // Toast.makeText(context, "Alarm set", Toast.LENGTH_SHORT).show();
    Resolution resolution = (Resolution) intent
                                    .getSerializableExtra(ResolutionsListActivity.RESOLUTION_OBJECT);

        showNotification(context, resolution);
}

ユーザーがリマインダー通知をタップするたびに、そのオブジェクトでアクティビティをロードできるように、シリアライズ可能なオブジェクトを渡しています。ただし、アラームがトリガーされるたびに、「エクストラの入力に失敗しました」などのエラーが発生します。

誰かが私が間違っていることを指摘できますか?

4

1 に答える 1