简单的检查了Android应用程序一个后台应用程序、后台、简单、Android

由网友(学无止境焉)分享简介:我跟踪很多activites如何目前在我的应用程序可见(这应该是0或1)通过调用plusActivity()的每个活动的onResume()和minusActivity()从的onPause()I'm tracking how many activites are currently visible in my ap...

我跟踪很多activites如何目前在我的应用程序可见(这应该是0或1)通过调用plusActivity()的每个活动的onResume()和minusActivity()从的onPause()

I'm tracking how many activites are currently visible in my app (which should be 0 or 1) by calling plusActivity() from each Activity's onResume() and minusActivity() from onPause()

加/ minusActivity在我所有MyApplication类,它扩展了应用。

plus/minusActivity are in my myApplication class, which extends Application.

方法递增和递减计数器。每次minusActivity()被调用时,它也发表了新的可运行其2秒后运行。当可运行的执行时,如果另一活动还没有开通后,最后一个关闭2秒前(如foregroundedActivities == 0,因为没有在2秒内称为plusActivity()),然后调用一个方法,做一些东西,需要发生中背景的时候。

The methods increment and decrement a counter. Every time minusActivity() is called, it also posts a runnable which runs after 2 seconds. When the runnable executes, if another activity hasn't opened after the last one closed 2 seconds ago ( e.g. foregroundedActivities == 0 because nothing called plusActivity() within 2 seconds), then it calls a method to do some stuff that needs to happen when backgrounded.

下面是一个片断:

public void plusActivity(){
    foregroundedActivities++;
}

public void minusActivity(){
    foregroundedActivities--;
    timingHandler.removeCallbacks(checkBackgroundTask);
    timingHandler.postDelayed(checkBackgroundTask, 2000);
}

public void checkIfBackgrounded(){
    if(foregroundedActivities==0){
        doWhateverWeDoWhenBackgrounded();
    }
}

public Runnable checkBackgroundTask=new Runnable(){

    @Override
    public void run() {
        checkIfBackgrounded();
    }

};

鉴于此过程中操作,并没有回调到活动参与,是实现背景检测一个可以接受的方式,还是我真的需要做的这一切都与一个服务2秒的时间内?这似乎是一个很大的开销,我看不到任何好处,因为这似乎很好地工作。

Given the 2-second timeframe this process operates in, and that no callbacks to an Activity are involved, is it an acceptable way to accomplish background detection, or do I really need to do all this with a Service? It seems like a lot of overhead and I can't see any benefits, since this seems to work fine.

推荐答案

您的解决方案可能会奏效,但我不知道。

Your solution might work but I don't know.

您可能能够使用的BroadcastReceiver 。如果您使用的BroadcastReceiver,你可以当一个活动随着你的加/减code执行的onPause()发出意向。该BroadcastReceiver的就可以可以再次执行你的应用程序......

You might be able to use a BroadcastReceiver. If you use BroadcastReceiver you can issue an Intent when an activity executes onPause() along with your plus/minus code. The BroadcastReceiver will be able to can execute your app again...

阅读全文

相关推荐

最新文章