如果用户已登录服务,我有一个主要活动。如果没有用户登录,它会打开一个新活动:
if (userName == null) {
Intent myIntent = new Intent(MainActivity.this, Login.class);
MainActivity.this.startActivity(myIntent);
}
此活动包含用户名和密码字段以及登录按钮。用户填写那里的信息,然后单击登录。我在一个新线程中完成网络:
new Thread( new Runnable() {
public void run() {
try {
Auth myAuth = new Auth(getApplicationContext());
Boolean isAuth = false;
isAuth=myAuth.getAuthToken(tUserName.getText().toString(), tPassword.getText().toString());
Bundle b = new Bundle();
b.putBoolean("isAuth", isAuth);
Message msg = new Message();
msg.setData(b);
loginHandler.dispatchMessage(msg);
}
catch (InterruptedException ex) { ex.printStackTrace(); }
catch (Exception ex) { ex.printStackTrace();}
finally { } }
}).start();
这会将消息发送回处理程序:
private static Handler loginHandler = new Handler () {
@Override
public void handleMessage(Message msg) {
mProgress.setVisibility(View.GONE);
if(msg.getData().getBoolean("isAuth")){
// UNABLE TO CALL FINISH
}
else
{
CharSequence msg2 = "Login Failed";
Toast.makeText(context, msg2, Toast.LENGTH_SHORT).show();
}
}
};
如果 isAuth 为真,我想自动关闭登录活动。
我实施登录屏幕的计划可能走错路了。就是这样让我知道,我会研究你建议的另一种方式。