【问题标题】:How to refresh / reload an activity from Broadcast Receiver android如何从广播接收器 android 刷新/重新加载活动
【发布时间】:2014-09-29 14:58:03
【问题描述】:

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

【问题讨论】:

    标签: android android-activity broadcastreceiver start-activity


    【解决方案1】:

    大家好,我该如何从扩展的类中刷新 Activity 广播接收器?

    您可以通过在 Activity 中添加 BroadcastReceiver 并在扩展 BroadcastReceiver 的类中向其发送广播来实现此目的。

    在你的 Activity 中注册一个 BroadcastReceiver:

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

    向类中扩展 BroadcastReceiver 的 Activity 发送广播:

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

    PS。该方案可以保证当有多个Activity实例时,每个Activity都会收到更新通知,而静态字段方案不能保证。

    【讨论】:

      【解决方案2】:

      活动中:

             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();
                }
                }
              }
      

      【讨论】:

        【解决方案3】:

        在您的 BroadcastReceiver 中添加这一行

        YourActivity.Update();
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多