0

很抱歉,我知道当我们将BroadcastReceivers 与活动生命周期混合时,我们会导致大脑出现很多错误和故障。我需要帮助我的大脑停止,我的问题很简单。

有没有办法让BroadcastReceiver类检测活动进行的onPause()方法?如果是,那么该课程将如何?

4

2 回答 2

1

在您的活动中,我唯一能想到的就是向您的一个接收者发送服装广播意图。

例如:

行动:

  public static final String CUSTOM_INTENT = "example.com.intent.action.ActivityGoingOnPause";

暂停活动:

  protected void onPause() {
     Intent i = new Intent();
     i.setAction(CUSTOM_INTENT);
     context.sendBroadcast(i);
  }

显现:

    <receiver android:name=".YourReceiver" android:enabled="true">  
        <intent-filter>
            <action android:name="example.com.intent.action.ActivityGoingOnPause"></action>
        </intent-filter>
    </receiver>

接收者:

 public class YourReceiver extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(YourActivity.CUSTOM_INTENT)) {
          //do your thing
        }
     }
 }

希望这可以帮助

于 2013-03-11T11:09:59.557 回答
0

在 onPause 中设置一个全局变量,如 isActivityPaused,并在活动的 onResume 中取消设置,然后检查该变量并决定是否发送广播。

于 2013-03-11T11:08:56.030 回答