如何设置登录时间检查?

时间:2012-08-10 11:45:29

标签: android

我想设置30秒的时间检查。基本上我想要的是我会打电话给网络服务登录,点击登录按钮后我想检查我是否在30秒内没有获得状态确定我想要显示警告,请再试一次。如何设置?

登录按钮:

        logbtn.setOnClickListener(new OnClickListener() 
        {
            public void onClick(View v) 
            {
                start = System.currentTimeMillis();
                SharedPreferences myPrefs = Login.this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
                SharedPreferences.Editor prefsEditor = myPrefs.edit();
                prefsEditor.putLong("starttime", start);
                prefsEditor.commit();
}

我想在这里查看区别:

SharedPreferences myPrefs = Login.this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
            time = myPrefs.getLong("starttime", System.currentTimeMillis());
if("ok".equalsIgnoreCase(status) && (System.currentTimeMillis() - time) > 3000)
{
    \\Code
}
else
{  
    Alert
}

2 个答案:

答案 0 :(得分:0)

我建议你开始一个新线程,它将负责状态检查。在您的新线程中,您可以简单地使用睡眠方法,并在30秒睡眠后 - 您将向用户显示状态。在Java API中查看有关线程的更多信息。

答案 1 :(得分:0)

您可以使用以下代码段

long startTime = 0;

logbtn.setOnClickListener(new OnClickListener() 
{
    public void onClick(View v) 
    {
        startTime = System.currentTimeMillis();
        SharedPreferences myPrefs = Login.this.getSharedPreferences("myPrefs",MODE_WORLD_READABLE);
        SharedPreferences.Editor prefsEditor = myPrefs.edit();
        prefsEditor.putLong("starttime", start);
        prefsEditor.commit();
        startLoginThread();
 }


private void startLoginThread()
{
    new Thread(new Runnable() {

        public void run() 
        {
            try 
            {
                Thread.sleep(1000); 
                if((System.currentTimeMillis() - startTime) > 30 * 1000)
                {
                    //show your allert
                }

            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }
        }
    }).start();
}