继续我学习Android的尝试,我只是阅读以下内容:
问题:用户是否可以选择终止应用程序,除非我们使用菜单选项来杀死它?如果不存在这样的选项,用户如何终止该应用程序?
答案:(Romain Guy):用户没有,系统会自动处理.这就是活动生命周期(特别是onPause/onStop/onDestroy)的用途.无论你做什么,都不要放"退出"或"退出"应用程序按钮.它与Android的应用程序模型无关.这也与核心应用程序的工作方式相反.
呵呵,我在Android世界中采取的每一步都会遇到某种问题=(
显然,你无法在Android中退出应用程序(但Android系统可以很好地完全破坏你的应用程序).那是怎么回事?我开始认为编写一个充当"普通应用程序"的应用程序是不可能的 - 用户可以在他/她决定这样做时退出应用程序.这不应该依赖操作系统来做.
我尝试创建的应用程序不是Android Market的应用程序.它不是一般公众"广泛使用"的应用程序,它是一个将用于非常狭窄的业务领域的商业应用程序.
我实际上真的很期待为Android平台开发,因为它解决了Windows Mobile和.NET中存在的许多问题.然而,上周对我来说有点懈怠...我希望我不必放弃Android,但它现在看起来不太好=(
有没有办法让我真的退出申请?
我的申请流程:
登录 - >简介 - > UpdateProfile-> ChangePass
我的所有活动都扩展了FragmentActivity
当我在ChangePass活动中按下按钮时,我调用此代码:
Intent intent=new Intent(getApplicationContext(),LoginActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
所以它应该启动LoginActivity,当我从LoginActivity按回来然后应该关闭...但是当我按下Login Activity中的后退按钮时,流程是:
ChangePass-> UpdateProfile->简介 - >登录
为什么我的后台堆栈没有清除?
注意:
在我的菜单中,我有一些项目.Home是我希望成为我的应用程序的根目录的项目,每当用户点击它时,Android清除堆栈然后返回到主屏幕.
这是我的代码:
menu.setOnItemClickedListener(new MenuClickedListener() {
public void eventOccured(int id) {
Intent intent = null;
switch(id) {
case 1: intent = new Intent(context, More.class); break;
case 2: intent = new Intent(context, FavoriteScreen.class); break;
case 3: intent = new Intent(context, VideoShowList.class); break;
case 4: intent = new Intent(context, ShoppingList.class); break;
case 5: intent = new Intent(context, MainScreen.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
break;
}
if(intent != null)
context.startActivity(intent);
}
});
Run Code Online (Sandbox Code Playgroud)
菜单工作正常,但似乎标志不起作用,因为从主屏幕,我去第二和第三屏幕然后我点击菜单的主页项目,并回到主屏幕.现在,当我点击后退按钮时,我会转到第三个屏幕,第二个屏幕和主屏幕.
我将此菜单设计为窗口小部件,以便将其设置一次并在我的所有屏幕上重复使用它.
任何建议,将不胜感激.谢谢.