所以,我正在尝试做的是更改在我的主要活动中扩展的一些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方法来编辑另一个活动中窗口小部件的状态?
答案 0 :(得分:0)
您的方法无效,因为您正在创建MainActivity的新实例。这不会引用您当前活动的主要活动。您可以尝试的一种解决方案是向您的活动发送另一个意图,并在您的活动中实施onNewIntent(Intent newIntent)。这样你就可以更新你在该函数中的主要活动,尝试使用你收到的新信息传递额外内容。