2010-12-09 118 views

回答

0

你必须使用一个Intent这样做。

实例,将数据传递到活动已经运行:

public void sendToActivity(Object data){ 
    Intent i = new Intent("SEND_DATA"); 
    i.putExtra("data", this.catchReports.get(data)); 
    sendBroadcast(i); 
} 

然后,您必须安装在您接收活动的监听赶上广播信号:

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    // Sets the View of the Activity 
    setContentView(R.layout.activity_layout); 
    registerReceiver(new CustomReceiver(this), new IntentFilter("SEND_DATA")); 
} 

随着以下自定义接收器:

public class CustomReceiver extends BroadcastReceiver { 

    private MyActivity activity; 

    public ReceiverEvent(MyActivity activity) { 
     this.activity = activity; 
    } 

    public void onReceive(Context context, Intent i) { 
     this.activity.doWhateverWithYourData(i.getParcelableExtra("newEvent")); 
    } 
} 

请注意,如果要传输对象其他呃比整数,浮动和字符串,你必须让他们Parcelable

+0

哇将数据发送到活动?为什么不只是发送信息的意图,并有意图启动所需的活动? – 2010-12-09 14:05:50

1

你有几个解决方案...

  1. 您可以使用静态字段在Java类中
  2. 您可以通过Intent.putExtra将数据打包成意图

选项(1 )如果您尝试在您自己的活动之间发送数据,可能会是最简单和最快的。如果您希望将数据发送到其他应用程序的活动,则必须执行选项(2)。

我建议你,你为什么要使用广播阅读这些问与答&第一,虽然一些更加深入的讨论这个问题......

Passing data of a non-primitive type between activities in android

Passing data between activities in Android

Switching activities/passing data between activities

相关问题