後,我有3個活動:防止用戶導航到活動註銷
- LoginScreen。
- MainScreen。
- ProfileScreen。
的loginscreen是被稱爲第一次和登錄按鈕的點擊我用下面的代碼調用mainscreen活動的主要活動:
finish(); // I am calling finish because I don't want user to press back key at mainscreen and get back to login screen.
Intent it = new Intent(LoginScreen.this,MainScreen.class);
startActivity(it);
在我mainscreen我有一個註銷按鈕我正在使用此代碼進行登錄:
finish();
Intent it = new Intent(MainScreen.this,LoginScreen.class);
containerObject.startActivity(it);
我不知道爲什麼,但此代碼不會讓我登錄屏幕。
如果我更改代碼從上面這段代碼:
finish();
Intent it = new Intent(MainScreen.this,ProfileScreen.class);
containerObject.startActivity(it);
代碼工作絕對沒問題,並帶我到profilescreen。
讓我說清楚,我已經添加了所有3個活動來顯示。
我是否因爲「LoginScreen」是主要活動而出現此問題?
我會推薦一個更好的方式來處理轉換到登錄屏幕,這將保持活動堆棧在一個傳統的結構,並避免後退按鈕問題。保持主屏幕爲主要(默認)活動。在這裏檢查用戶是否登錄,如果沒有,用'startActivityForResult'調用你的登錄屏幕。 http://developer.android.com/reference/android/app/Activity.html#StartingActivities當用戶登錄後,使用'setResult()'退出登錄活動,這會返回到主活動。 – 2011-04-19 06:49:24
除了在第一條評論中提到,爲什麼你先打完finish()然後發送intent?嘗試改變順序。 – Zelimir 2011-04-19 08:16:54
我很欣賞你的意見,但如果我們能夠討論這段代碼出了什麼問題,我們將非常感激。謝謝:) – necixy 2011-04-19 08:40:00