Android的Activity和Activity之间怎么在后台传递数据的,不是跳转时用intent那种。

一个Activity如何在后台把数据传给另一个Activity呢,比如我在一个Activity中输入一个字符串,然后点击一下按钮,就能把该字符串传到指定的Activity... 一个Activity如何在后台把数据传给另一个Activity呢,比如我在一个Activity中输入一个字符串,然后点击一下按钮,就能把该字符串传到指定的Activity中,有没有办法可以实现呢?或者说有什么其他方法,可以实现这样的功能?谢谢! 展开
 我来答
duoloniori
2015-01-04 · TA获得超过456个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:227万
展开全部

可以考虑用广播来实现,在第一个Activity调用sendBroadcast方法:

Intent intent = new Intent(INTENAL_ACTION_3);
intent.putExtra("Name", "hellogv");
intent.putExtra("Blog", "http://blog.csdn.net/hellogv");
sendBroadcast(intent);//传递过去

第二个Activity用registerReceiver监听广播:

 IntentFilter intentFilter = new IntentFilter();
  intentFilter.addAction(String); //为BroadcastReceiver指定action,即要监听的消息名字。
     registerReceiver(MyBroadcastReceiver,intentFilter); //注册监听
     unregisterReceiver(MyBroadcastReceiver); //取消监听
  (一般:在onStart中注册,onStop中取消unregisterReceiver)
     private class MyBroadcastReceive extends BroadcastReceiver
     {
           public void onReceive(Context context, Intent intent)
           {
               String action = intent.getAction();
                if(INTENAL_ACTION_3.equals(action)) 
                {
                   //处理内容
                 }
            }
      }

INTENAL_ACTION_3是广播的名称,可以这样定义:

public static final String INTENAL_ACTION_3 ="com.example.demobroadcast.BroadcastAction";
追问

根据你的方法,我试了一下,发送可以,监听不行呀,你帮我看看,有没有问题。

Activity注册并监听:

如果在这个java文件中将MyReceiver监听类写成public,不用Activity的话,又可以正常收到,这是怎么回事?请求指导,谢谢!

追答
我不知道你是如何调用的,但是我想可能你把Activity启动的顺序搞错了。注册监听的Activity应该是已经启动了的,也就是说,在你发送广播之前,监听的Activity必须已经是启动了,只不过是暂停状态的。因为你必须要保证这个Activity是运行中的,这样才有可能监听到广播。你可能是先发送广播,再跳转到监听的Activity了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式