當用戶按一個意圖後退按鈕時,應用程序應該退出。如何確保在按下後退按鈕時應用程序退出?android按回退按鈕應該退出應用程序
回答
在您開始新活動後,立即使用startActivity
,確保您撥打finish()
,以便當前活動不會疊加在新活動後面。
編輯 至於您的評論:
什麼你的建議是不是特別怎麼Android應用流量通常工作,以及用戶如何期望它的工作。 如果你真的想要做的是確保每個導致該活動的startActivity
是startActivityForResult
,並且有一個onActivityResult
偵聽器,用於檢查退出代碼並檢查退出代碼。您可以read more about that here。基本上,在完成某項活動之前使用setResult
,設定您所選擇的退出代碼,如果你的父活動接收到退出代碼,將其設置在是活動,並完成一個,等...
爲什麼用戶不能點擊主頁按鈕?然後,他們可以從任何活動中退出您的應用,而不僅僅是特定的活動。
如果您擔心應用程序在後臺繼續執行某些操作。確保在相關的onPause和onStop命令中停止它(當用戶按下Home時會觸發它)。
如果您的問題是您希望下一次用戶點擊您的應用程序以便在開始時重新開始,我建議在屏幕上放置某種菜單項或UI按鈕,以使用戶回到開始你的應用程序的活動。就像在官方Twitter應用Twitter的小鳥等
在我家的活動我重寫「onBackPressed」到:
@Override
public void onBackPressed() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
因此如果用戶是在家裏活動,並按回來,他去到主屏幕。
更好的用戶體驗:
/**
* Back button listener.
* Will close the application if the back button pressed twice.
*/
@Override
public void onBackPressed()
{
if(backButtonCount >= 1)
{
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
else
{
Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
backButtonCount++;
}
}
偉大的工作。我會添加一些其他的東西是將一個成員變量設置爲Toast.makeText調用(例如Toast myToast = Toast.makeText()),然後在backButtonCount> = 1上使用該變量,在該面包上調用.cancel()。爲了達到我的目的,我延長了Toast.LENGTH_LONG的持續時間,因爲對於文本的數量來說,持續時間似乎很短。我的用戶是老年人。此外,可能很明顯,backButtonCount是一個成員變量設置爲0,也應該在您的第一個if語句中設置爲0。 – 2013-09-01 16:42:30
我還加入了「android.os.Process.killProcess(android.os.Process.myPid());」所以我的應用程序被終止並重新啓動,如果用戶再次點擊它 – 2016-12-22 13:54:19
使用方法finish() onBack method of your current_activity
完成您current_activity,然後添加下面的current_activity的的onDestroy線,去除強制關閉
@Override
public void onDestroy()
{
android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();
}
如果後端堆棧中沒有任何活動,應用程序將只會退出。因此,在您的清單的Android加入這一行:noHistory =「真」到所有你不想回到stacked.And然後關閉該應用程序調用完成()在OnBackPressed
<activity android:name=".activities.DemoActivity"
android:screenOrientation="portrait"
**android:noHistory="true"**
/>
活動
首先,Android不建議你在後退按鈕中這樣做,而是使用提供的生命週期方法。後退按鈕不應該銷燬活動。
活動正被添加到堆棧中,當從UI堆棧中最後剩下的活動按下後退按鈕時,可以從概述(自5.0版中引入材料設計後的方形按鈕)進行訪問。如果用戶想要關閉應用程序,他們應該從概覽菜單中將其關閉(關閉)。
您的應用程序負責停止onPause(),onStop()和onDestroy()生命週期方法中的任何後臺任務和您不想運行的任務。請閱讀更多有關生命週期和它們的正確實施此:http://developer.android.com/training/basics/activity-lifecycle/stopping.html
但是,爲了回答你的問題,你可以做黑客來實現你想要的,確切的行爲,但正如我所說,我們不建議:
@Override
public void onBackPressed() {
// make sure you have this outcommented
// super.onBackPressed();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
要退出Android應用程序,只需簡單地使用。 在你的主要活動,或者您也可以使用Android清單文件設置
android:noHistory="true"
使用onBackPressed
方法
@Override
public void onBackPressed() {
finish();
super.onBackPressed();
}
這將解決您的問題。
我修改@Vlad_Spays回答,以便後退按鈕正常工作,除非它是堆棧中的最後一項,然後在退出應用程序之前提示用戶。
@Override
public void onBackPressed(){
if (isTaskRoot()){
if (backButtonCount >= 1){
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}else{
Toast.makeText(this, "Press the back button once again to close the application.", Toast.LENGTH_SHORT).show();
backButtonCount++;
}
}else{
super.onBackPressed();
}
}
- 1. 退出應用程序按鈕android
- 2. 如何退出android應用程序退出按鈕?
- 3. 按兩次退出按鈕退出AIR安卓應用程序
- 4. 按兩次退出按鈕退出應用程序
- 5. 退出應用程序第二次後退按鈕點擊 - Android
- 6. Android應用程序中的後退按鈕無法退出應用程序
- 7. 向上按鈕退出應用程序?
- 8. 退出應用程序後退按鍵
- 9. 返回按鈕在android中退出應用程序
- 10. 防止退出按鈕退出科爾多瓦應用程序
- 11. Android後退按鈕返回上一個,但退出應用程序
- 12. Android應用程序通過按「後退按鈕」退出後崩潰
- 13. Android如何防止後退按鈕退出應用程序(按回家按鈕後)
- 14. Ionic 2 - 防止退出應用程序硬件後退按鈕
- 15. 應用程序退出無法按下Android應用程序中的後退按鈕(Phonegap&AngularJS)
- 16. Android後退按鈕應該起到向上按鈕的作用
- 17. 導航應用程序 - 後退按鈕
- 18. 後退按鈕關閉應用程序
- 19. 應用按後退按鈕當按下後退按鈕
- 20. Codename one:應用程序應該關閉雙擊後退按鈕
- 21. 單頁HTML5 Web應用程序不應該有後退按鈕?
- 22. 後退按鈕在android中使用appcelerator titanium退出應用程序
- 23. Win10 UWP應用程序處理長按回退按鈕
- 24. Android Back按鈕在PhoneGap + jQuery中退出應用程序
- 25. 在Android應用程序上放置退出按鈕
- 26. 退出Android應用程序按鈕 - 真的
- 27. 按下後退按鈕時的Android關閉應用程序
- 28. 如何按退回鍵退出程序?
- 29. 按下按鈕時應用程序退出
- 30. 應用程序按後退按鈕後拋出一個異常
我想你不明白的情況下,我的問題是,當特定的一個活動用戶點擊它,我選擇按後退按鈕在它應該調用exit從應用 – 2010-03-01 09:05:17
好吧,看我的編輯。 – 2010-03-01 09:29:25