我正在使用 Intents 来保存数据并在我的应用程序的其他位置恢复它们。我在其他地方使用过它们,但现在,它并没有像我希望的那样工作。
public class GCMIntentService extends GCMBaseIntentService {
public GCMIntentService() {
super(ConstantsGCM.GCM_SENDER_ID);
}
@Override
protected void onMessage(Context context, Intent intent) {
...
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager notManager = (NotificationManager) context.getSystemService(ns);
String room = intent.getExtras().getString(ConstantsGCM.GCM_ROOM);
Intent notIntent;
PendingIntent contIntent;
Notification notif;
notif = new Notification(icon, textStatus, time);
notIntent = new Intent(contexto,RoomsActivity2.class);
Bundle b2 = new Bundle();
b2.putString(ConstantsRooms.ROOM, room);
notIntent.putExtras(b2);
contIntent = PendingIntent.getActivity(contexto, 0, notIntent, 0);
notif.setLatestEventInfo(contexto, tittle, description, contIntent);
notif.flags |= Notification.FLAG_AUTO_CANCEL;
notManager.notify((int)(Math.random()*1000), notif);
此代码在通知到来时执行。当我单击此通知时,它会执行 Activity RoomsActivities2.class。在这里,我只是调用这段代码:
public String getMessageString(String cod){
String result = "";
bundle = getIntent().getExtras();
if (bundle != null){
result = bundle.getString(cod);
}
return result;
}
但是,我没有得到 Intent 中保存的最后一个数据。怎么了?我想我没有正确使用它。为什么我无法从活动中获取数据?
我认为它正在发生的事情是:应用程序收到很多通知,第一个工作正常。但是,如果我不断收到更多通知,则数据不会被覆盖,并且我总是得到第一个,尽管当我调试代码时,我正在设置另一个数据。