处理SMS- onReceive以触发另一个活动/类中的事件

时间:2011-09-22 22:43:49

标签: android sms broadcastreceiver

所以,我正在尝试做的是更改在我的主要活动中扩展的一些ui元素 - 我希望更改由onReceive触发,onReceive来自另一个不同的类中扩展的broadcastreceiver。

我想做这样的事情

public class SmsReceiver extends BroadcastReceiver {
public void onReceive(context, intent){

MainActivity main = new MainActivity();   //this is my... main activity :)

main.button.setBackgroundColor(Color.green);
}//end onReceive

}//end class

在我的MainActivity中,我将值设置为GUI按钮元素,如下所示:

public class mainactivity extends activity... implements onclick... bla bla (){
Button button;

onCreate....{
  button = (Button)findViewById(R.id.button);

所以我想知道当onReceive被激活时,我是否可以通过实例化该活动并在其上调用setter方法来编辑另一个活动中窗口小部件的状态?

1 个答案:

答案 0 :(得分:0)

您的方法无效,因为您正在创建MainActivity的新实例。这不会引用您当前活动的主要活动。您可以尝试的一种解决方案是向您的活动发送另一个意图,并在您的活动中实施onNewIntent(Intent newIntent)。这样你就可以更新你在该函数中的主要活动,尝试使用你收到的新信息传递额外内容。

相关问题