0

これがPendingIntentを作成するコードです:

Bundle b = new Bundle();
b.putCharSequence("Dest", myTrip.inboundFlights.get(i).getDestination());
b.putCharSequence("Orig", myTrip.inboundFlights.get(i).getOrigin());
b.putLong("DepTime", myTrip.inboundFlights.get(i).getEtd().getTime());
Intent myIntent = new Intent("NotificationActivity");
myIntent.putExtras(b);
System.out.println(myIntent.getExtras());
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

私が見つけたすべてによれば、これは機能するはずですが、アクティビティ内のバンドルにアクセスしようとすると、NULLになります。

アクティビティは次のとおりです。

public class NotificationActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    System.out.println(savedInstanceState);

    NotificationManager mNotificationManager;
    mNotificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    Context context = getApplicationContext();
    int icon = R.drawable.app_icon;
    CharSequence tickerText = "tickerText";
    CharSequence contentTitle = "title";

    CharSequence contentText = savedInstanceState.getCharSequence("Dest"); //Here's the crash with null pointer exception
    Intent notificationIntent = new Intent(this, NotificationActivity.class);
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
    long when = savedInstanceState.getLong("DepTime");
    int id = (int) savedInstanceState.getLong("DepTime");//temporary will change later
    Notification notification = new Notification(icon, tickerText, when);
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

    mNotificationManager.notify( id, notification);
    finish();

}
}

そして、これがアクティビティのAndroidManifest.xmlからの部分です。

<activity android:name=".Helpers.NotificationActivity" >
        <intent-filter>
            <action android:name="NotificationActivity" />
            <category android:name="android.intent.category.DEFAULT" /> 
        </intent-filter>
    </activity>

私は何が欠けていますか?

4

1 に答える 1

3

やってみたいと思います

Bundle data = getIntent().getExtras();
CharSequence contentText = data.getCharSequence("Dest");

それ以外の

CharSequence contentText = savedInstanceState.getCharSequence("Dest");
于 2012-08-21T18:31:46.643 に答える