0
我有shecks如果用戶已登錄到該服務的主要活動。如果沒有用戶登錄,它會打開一個新的活動:無法調用finish()從靜態處理
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是真實的。
我對implemeting登錄屏幕可能走錯路的計劃。只是讓我知道,我會研究你建議的另一種方式。
不知道這是否是正確的方式來做到這一點,但在這裏。我修改了線程中運行的代碼以調用finish()。它似乎工作正常。 – techiegoob 2012-08-07 20:35:48
isAuth = myAuth.getAuthToken(tUserName.getText()。toString(),tPassword.getText()。toString()); \t \t \t \t \t如果(isAuth){ \t \t \t \t \t \t光潔度(); \t \t \t \t \t} \t \t \t \t \t否則{ \t \t \t \t \t \t捆B =新軟件包(); \t \t \t \t \t \t b.putBoolean(「isAuth」,isAuth); \t \t \t \t \t \t消息msg = new Message(); \t \t \t \t \t \t msg.setData(b); \t \t \t \t \t \t loginHandler.dispatchMessage(msg); \t \t \t \t \t} – techiegoob 2012-08-07 20:37:04