BroadcastReceiver类,用于检测onPause上的活动

时间:2013-03-11 10:53:56

标签: android android-broadcast

对不起,我知道当我们将BroadcastReceiver与活动生命周期混合在一起时,我们会导致大脑出现大量错误和故障。我需要帮助我的大脑停止了,我的问题很简单。

有没有办法让BroadcastReceiver类检测到活动进行onPause()方法?如果是的话那那该课怎么样?

2 个答案:

答案 0 :(得分:1)

我唯一可以在你的活动中想到的就是发送你的一个接收器的服装广播意图。

e.g:

行动:

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

活动onPause:

  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>

reciver:

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

希望这有帮助

答案 1 :(得分:0)

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