如何阻止我的应用程序由于不活动而在另一个应用程序上弹出

时间:2019-03-21 19:26:53

标签: android

我一直在尝试检测我的应用程序中的用户非活动状态,并确实在stackoverflow上找到了一个代码,该代码确实很棒,但问题是,当在另一个应用程序中时,让计时器在我的应用程序中启动时说Whatsapp,应用只是在屏幕上弹出,我不希望这样,我不希望每次由于不活动而使计时器倒数时都弹出我的应用。

Original code by Pradeep Gupta

拜托,我该怎么做?

这是我的代码

{gsub ("(Name)",ENVIRON ["name"]);
gsub ("(House)",ENVIRON["house"]);
gsub ("(Phone)",ENVIRON["phone"]);}

1 个答案:

答案 0 :(得分:0)

从您的startHandler();方法中删除onCreate(),然后添加这两种方法。

@Override
protected void onPause() {
    super.onPause();
    stopHandler();
}

@Override
protected void onResume() {
    super.onResume();
    startHandler();
}

您的代码的作用是将执行一段代码的时间设置为5分钟。每当“活动”检测到触摸或按键时,它将重新启动该延迟。

因此,如果用户在您自己的应用程序中闲置5分钟,这将非常有效,因为它将启动VendorHub活动。

但是,当用户离开应用程序时,您从未停止过该处理程序,这会导致5分钟后仍启动VendorHub活动。

只需在onPause()中停止处理程序,然后在onResume()中再次启动处理程序。

另外,由于onResume()发生在onCreate()之后,因此这也意味着无需在startHandler()中调用onCreate(),因为它将在{{1 }}。