我想设置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
}
答案 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();
}