java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3993字,纯文字阅读大概需要6分钟。
内容图文
![java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App](/upload/InfoBanner/zyjiaocheng/703/3f1121ac0e1445cb8c5a3c1132e09fd7.jpg)
我在一个Activity中有以下功能
public void AppExit()
{
Editor edit = preferences.edit();
edit.putString("pref_code", "");
edit.commit();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
}
它在自己的Activity中运作良好.我想称之为另一项活动.我也创建了类实例,如下所示
Home hm = new Home();
hm.AppExit();
但它的错误是
06-29 19:41:06.024: E/AndroidRuntime(583): FATAL EXCEPTION: main
06-29 19:41:06.024: E/AndroidRuntime(583): java.lang.NullPointerException
06-29 19:41:06.024: E/AndroidRuntime(583): at android.app.Activity.startActivityForResult(Activity.java:2827)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.app.Activity.startActivity(Activity.java:2933)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.mythrii.timeApp.Home.AppExit(Home.java:219)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.mythrii.timeApp.AdminPage.onOptionsItemSelected(AdminPage.java:205)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.app.Activity.onMenuItemSelected(Activity.java:2205)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:748)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.view.View$PerformClick.run(View.java:9080)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.os.Handler.handleCallback(Handler.java:587)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.os.Handler.dispatchMessage(Handler.java:92)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.os.Looper.loop(Looper.java:130)
06-29 19:41:06.024: E/AndroidRuntime(583): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-29 19:41:06.024: E/AndroidRuntime(583): at java.lang.reflect.Method.invokeNative(Native Method)
06-29 19:41:06.024: E/AndroidRuntime(583): at java.lang.reflect.Method.invoke(Method.java:507)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-29 19:41:06.024: E/AndroidRuntime(583): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-29 19:41:06.024: E/AndroidRuntime(583): at dalvik.system.NativeStart.main(Native Method)
有谁能够帮助我…
解决方法:
作为一般建议:不要利用操作系统.
除了常规桌面系统之外,Android(和iOS)系统通常没有您经常使用的那么多应用程序.由于大多数用户经常只使用一个装满应用程序的手,因此当您返回主屏幕时系统不会完全“杀死”应用程序,以便在再次打开时加快速度.
这将导致一些应用程序以非常快的速度启动(最常用的应用程序).但是,当Android系统需要占用资源时,它将自行解放这些资源,从而杀死一些仍在后台运行的旧应用程序.
这就是为什么你通常不应该自己终止一个应用程序.
除了上述声明外,您似乎正在尝试手动启动主屏幕.没有必要这样做!
如果您只想添加一个从应用程序返回到主屏幕的选项,请在您的活动中调用this.finish().然后,这将关闭当前活动并返回主屏幕.
最后一点,如果您希望应用程序存储有关当前状态的信息(就像您使用共享首选项一样),您应该在Activity的onStop()-method或onPause()方法中执行此操作.见Docs for more information.
无论您是自己关闭应用程序还是系统关闭它(因为它需要内存空间),Android系统都会调用此方法.
最后(也是最少),一些一般的Android编程建议:
不要使用new-operator手动创建活动.让系统执行此操作并为此目的使用Intents.
活动真的只是“墙上涂漆”.它们旨在向用户展示一些东西.应用程序代码(以及任何类型的繁重工作)几乎总是应该放入AsyncTask中.这样,您的UI将始终响应并且永远不会“冻结”,这将使用户感到紧张.
内容总结
以上是互联网集市为您收集整理的java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App全部内容,希望文章能够帮你解决java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。