我有一个应用程序(许多活动)。我想在应用程序变为背景时清除用户凭据等少数值。我如何知道应用程序何时启动?我试图拦截主页按钮,但似乎我们不能这样做。如果我调用onPause(),它会在每次从一个活动移动到另一个活动时被调用。我搜查了很多,但没有得到任何具体的东西。当应用程序转到背景时Android清除数据
请帮
我有一个应用程序(许多活动)。我想在应用程序变为背景时清除用户凭据等少数值。我如何知道应用程序何时启动?我试图拦截主页按钮,但似乎我们不能这样做。如果我调用onPause(),它会在每次从一个活动移动到另一个活动时被调用。我搜查了很多,但没有得到任何具体的东西。当应用程序转到背景时Android清除数据
请帮
我认为你有两种方式来实现自己的目标一个是清零的onStop()你活动的状态,其中包含您的数据和另一种方式是(你提到)追赶首页新闻数据事件。
检测首页的新闻发布会上,你应该重写:onAttachedToWindow()
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
然后清除您的数据:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//Put your Codes here to Clear Data
}
});
这是很难用Android作为有一个应用程序将没有具体定义的背景。检测主键是不够的,因为有很多其他事件会导致您的应用程序失去焦点。
例如,来电会导致您的应用程序“去背景”,但对用户来说,这似乎并不是这种情况。
实现您想要的一种可能的方法是使用活动的OnPause和OnResume方法与应用程序类中的服务或简单任务进行通信。 (任何独立于你的活动的东西)。
当OnPause被调用时,启动一个计时器。当OnResume被调用时,停止计时器。
如果定时器没有在特定的时间段内停止,那么你会认为应用程序“在后台”,并可以清除数据。
允许有足够的时间来处理简单的更改,例如上面的来电示例。也许一两分钟取决于你的情况。