几分钟后返回android的登录界面

时间:2016-06-15 05:02:46

标签: android sharedpreferences

我正在创建一个小应用程序登录屏幕和注册屏幕以及另外四个屏幕。我在SharedPreference中存储数据。如果用户在20分钟后访问应用程序,则必须自动重定向到登录屏幕。我对CountDownTimer知之甚少,但我不知道如何在这里使用它。帮助解决我的问题。

2 个答案:

答案 0 :(得分:2)

将上次登录的时间添加到共享首选项,并在成功登录时更新值。每次打开应用程序时检查是否到期。

MainActivity:

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState){
    int timeOfLastLogin = getPreferenceInt("last_login");
    if(System.currentTimeMillis() - timeOfLastLogin > 1000*60*20){
        Intent loginIntent = new Intent(this, LoginActivity.class);
        startActivity(loginIntent);
        finish();
    }
}

//...

}

登录活动:

public class LoginActivity extends Activity {

//...
    public void login(){
        // Your login logic
        setPreferenceInt("last_login", System.currentTimeMillis());
    }

}

答案 1 :(得分:1)

在那种情况下。

当用户从Activity退出应用时,在ondestroy()方法中保存用户退出应用时的当前时间。

@Override
public void onDestroy(){
   Calendar cal = Calendar.getInstance();
   editor.put("lastLoggedIn",calendar.getTime().getTime());
   editor.commit();
   super.onDestroy();
}

当用户登录再次进入时,请检查onCreate()

中的时差
@Override
public void onCreate(Bundle instance){
...
 long oldTime = pref.getLong(this,"lastLoggedIn",0);
  if(oldTime != 0){
    Calendar cal = Calendar.getInstance();
    long currentTime = cal.getTime().getTime();
    long diff = currentTime - oldTime;
    long diffSec = diff / 1000;
    long min = diffSec / 60;
     if(min > 20){
        //alert 
     }
  }

...
}