Android 自动注销应用程序
我正在尝试实现自动注销功能。如果应用程序在1小时内未使用,我希望自动将用户带到登录屏幕。当手机被锁定时,监控应用程序是否正在使用的线程似乎不会继续。我的代码如下:Android 自动注销应用程序,android,Android,我正在尝试实现自动注销功能。如果应用程序在1小时内未使用,我希望自动将用户带到登录屏幕。当手机被锁定时,监控应用程序是否正在使用的线程似乎不会继续。我的代码如下: /** * This Deamon checks if the application is idle and */ private class LogoutDeamon extends Thread { public void run() { while (!logoutDeamon) {
/**
* This Deamon checks if the application is idle and
*/
private class LogoutDeamon extends Thread {
public void run() {
while (!logoutDeamon) {
try {
System.out.println("Logout Counter:" + logoutConter);
if (logoutConter <= 0) {
logoutDeamon = true;
ApplicationManager.getInstance().setLoggedOut(true);
ApplicationManager.getInstance().Log(Level.INFO, "Auto Log out");
logout();
} else {
decreamentCounter();
}
sleep(60000 * 1);
} catch (ParserException ex) {
Log(Level.ERROR, " Par. Ex. in Logout-Deamon:" + ex.getMessage());
logout();
} catch (ServerException ex) {
Log(Level.ERROR, " Ser. Ex. in Logout-Deamon:" + ex.getErrorMessage());
logout();
} catch (InterruptedException ie) {
Log(Level.ERROR, "Int. Ex. in Logout-Deamon:" + ie.getMessage());
} catch (Exception ex) {
Log(Level.ERROR, "Erro in Logout-Deamon:" + ex.getMessage());
logout();
}
}
}
private void logout(){
Intent broadcastIntent = new Intent();
broadcastIntent
.setAction("com.package.ACTION_LOGOUT");
applicationContext.sendBroadcast(broadcastIntent);
Intent loginIntent = new Intent(applicationContext,
Login.class);
loginIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
applicationContext.startActivity(loginIntent);
}
}
/**
*此Deamon检查应用程序是否空闲,以及
*/
私有类LogoutDeamon扩展线程{
公开募捐{
而(!logoutDeamon){
试一试{
System.out.println(“注销计数器:“+logoutConter”);
如果(logoutConter我认为您不需要线程。请在onPause中注册时间。如果1小时已过,请在onResume测试中注册时间。否则,请重置计时器。我遇到的问题是时间因素不固定。我从服务器获取注销周期。因此,我将线程休眠一分钟并减少计时器。线程是否会进入pause state如果手机被锁定?当设备进入睡眠模式时,线程将停止执行。无论如何,当设备进入睡眠状态或用户关闭应用程序时,将调用onPause。当应用程序再次启动时,将调用onResume。这两种方法应足以实现您的业务逻辑-无线程c需要计算时间。谢谢。是否应该在所有活动中实现此逻辑?因为我的应用程序中有多个活动?是的,您应该在所有活动中添加此逻辑。例如,您可以使用从所有活动访问的单例类。可能会为您的一个活动调用onPause然后马上开始你的另一份简历。这应该不是问题。我也会试试。谢谢。