求一个ANDROID编程问题,数据传递和窗口刷新
求一个ANDROID编程问题
一个BroadcastReceiver截获了一个事件
得到了一个数据
数据要通过Intent传递给一个Activity
程序可以写成如下
/* 返回主Activity */
Intent i = new Intent(context, EX06_05.class);
/*自定义一Bundle*/
Bundle mbundle = new Bundle();
/*将短信信息以putString()方法存入自定义的bundle内*/
mbundle.putString("STR_INPUT", sb.toString());
/*将自定义bundle写入Intent中*/
i.putExtras(mbundle);
/*设置Intent的Flag以一个全新的task来运行*/
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
------------------------------
这样会调用 EX06_05 这个类的onCreate方法
我们在这个方法里把数据取出来
程序如下
try
{
/*取得短信传来的bundle*/
Bundle bunde = this.getIntent().getExtras();
if (bunde!= null)
{
/*将bunde内的字符串取出*/
String sb = bunde.getString("STR_INPUT");
mTextView1.setText("接收数据="+num+sb);
}
else
{
mTextView1.setText("等待接收数据..."+num);
}
}
catch(Exception e)
{
e.printStackTrace();
}
---------------------------------
但是现在的问题是 如果当前Activity就是EX06_05
那么该如何传数据,才能使 EX06_05 及时更新呢?
[解决办法]
可以EX06_05的lanuch mode 设置成singleTask
不建议这样做。会使程序的任务管理产生混乱。
我的做法是将EX06_05的引用注册到实现BroadcastReceiver 的类里,形成一个Observer模式。
具体怎么做还是要看EX06_05这个Activity的生命周期和跟其他的Activity的关系吧。