将数据从onReceive传递到新Activity

时间:2012-12-21 18:19:47

标签: android

我有一个通知栏,当我点击它时,会启动一个具有相同数据的新活动(一个字符串数组)。我有一个问题从onReceive.class传递数据到新的Activity(通知)。当我点击时,我看到了新活动,但是在使用nullPointerE时崩溃了。

not1 [x]是一个字符串数组

我的代码

AlarmReceiver:

Intent notificationIntent = new Intent("com.example.myapp", null, context, Notify.class);
        notificationIntent.putExtra("notify", not1[x]);
        PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);

通知:

Bundle b = getIntent().getExtras();
      if (b != null) {
          Intent intent = getIntent();
          String[] notify2 = b.getStringArray("notify");

          textView1.setText("notify2");

3 个答案:

答案 0 :(得分:1)

试试这个

String[] getArray=getIntent().getStringArrayExtra("notify");

在not1 [x]之间是一个不是数组的字符串。

private NotificationManager mNotificationManager;
    private int SIMPLE_NOTFICATION_ID;

mNotificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    notifyDetails = new Notification(R.drawable.somepngfile,"some text",System.currentTimeMillis());


       Context context = getApplicationContext();
        CharSequence contentTitle = "title";
        CharSequence contentText = "ontent";
        Intent notifyIntent = new Intent(thisclass.this,nextclass.class);

        notifyIntent.putExtra("Value", finalresponse[1]+","+finalresponse[2]+","+finalresponse[3]);



        PendingIntent intent = 
            PendingIntent.getActivity(BackService.this, 0, 
            notifyIntent, android.content.Intent.FLAG_ACTIVITY_NEW_TASK);

        notifyDetails.setLatestEventInfo(context, contentTitle, contentText, intent);
        notifyDetails.defaults|= Notification.DEFAULT_SOUND;
        notifyDetails.defaults|= Notification.DEFAULT_LIGHTS;
        notifyDetails.defaults|= Notification.DEFAULT_VIBRATE;
        notifyDetails.defaults|= Notification.FLAG_AUTO_CANCEL;
        notifyDetails.flags |= Notification.FLAG_AUTO_CANCEL | Notification.FLAG_SHOW_LIGHTS;
        mNotificationManager.notify(SIMPLE_NOTFICATION_ID, notifyDetails);

下一堂课

 Intent i = getIntent();
        i.getStringExtra("Value");

        String[] response=i.getStringExtra("Value").split(",");

答案 1 :(得分:0)

这个not1[x]是一个字符串数组吗?它看起来像一个String Array的元素,实际上是一个String。

答案 2 :(得分:0)

只需在 AlarmReceiver 类中替换以下代码即可。它对我有用......

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

如果我们在接收方使用0而不是 PendingIntent.FLAG_UPDATE_CURRENT 标志,即getIntent()。getExtras()不会动态更新数据,每次都分配第一个传递的数据.... / p>