我一直在尝试检测我的应用程序中的用户非活动状态,并确实在stackoverflow上找到了一个代码,该代码确实很棒,但问题是,当在另一个应用程序中时,让计时器在我的应用程序中启动时说Whatsapp,应用只是在屏幕上弹出,我不希望这样,我不希望每次由于不活动而使计时器倒数时都弹出我的应用。
Original code by Pradeep Gupta
拜托,我该怎么做?
这是我的代码
{gsub ("(Name)",ENVIRON ["name"]);
gsub ("(House)",ENVIRON["house"]);
gsub ("(Phone)",ENVIRON["phone"]);}
答案 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 }}。