如何从广播接收器android刷新/重新加载活动



大家好,我该如何从扩展BroadcastReceiver的类中刷新"活动"?有意图的经典StartActivity不起作用。:/

嗨,伙计们,我该如何刷新扩展类中的活动BroadcastReceiver?

您可以通过在"活动"中添加一个BroadcastReceiver来实现这一点,并在扩展BroadcastReceive的类中向其发送广播。

在您的活动中注册BroadcastReceiver:

IntentFilter filter = new IntentFilter("yourpackagename.updateActivity");
registerReceiver(new BroadcastReceiver(){
    public void onReceive(Context context, Intent intent) {
        // Update your Activity here.
    }
}, filter);

将广播发送到类中扩展BroadcastReceiver:的活动

    public void onReceive(Context context, Intent intent) {
        if(meet the condition){
            Intent i = new Intent("yourpackagename.updateActivity");
            context.sendBroadcast(i);
        }
    }

PS。该解决方案可以保证当存在多个"活动"实例时,每个"活动"都会得到更新通知,而静态字段解决方案则不能保证这一点。

在活动中:

       class TestActivity extends Activity{
         private static TestActivity Obj;  
         public TestActivity(){
                Obj=this;
             }
         public static getInstance(){
           return Obj;
            }
         public void refresh(){
         //refresh Logic here
         }
       }

接收器内:

        public TestReceiver extends BroadcastReceiver{
              ........ OnReceive(){

         if(TestActivity.getInstance()!=null){
            TestActivity.getInstance().refresh();
          }
          }
        }

在BroadcastReceiver 中添加此行

YourActivity.Update();

通过此操作,在您的活动类中创建一个静态Update()方法,并在Update()方法中执行您想要的所有操作。

最新更新