java app退出登录_java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App...
我在一个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将始终响应并且永远不会“冻结”,这将使用户感到紧张.
标签:android,java
来源: https://codeday.me/bug/20191003/1847046.html
java app退出登录_java – 通过从一个Activity调用一个函数,将退出按钮添加到Android App...相关推荐
- 关于Qt中QDialog对话框调用exec()函数界面退出造成僵尸程序问题
关于Qt中QDialog对话框调用exec函数产生的问题 问题一: 问题描述: 原因分析: 解决方案: 问题二: 问题描述: 求助:关于这个问题,学识尚浅,求大佬分析一波 问题一: QDialog对话 ...
- java 手动抛异常_Java如何在没有throws签名的函数中手动抛出异常
如果想在方法中抛出异常,像下面这样直接throw是不行的.public void test() { throw new Exception(); } 这时编译器会给我们一个错误: Error:(101 ...
- java退出登录_java实现注销登录
servlet HttpServletRequest request HttpSession session=request.getSession(); session.removeAttribute ...
- java实现自动登录_java实现用户自动登录
自动登录,是为了帮助用户多次使用这个网页时,不用再次输入用户名和密码就可以登录. 自动登录是指用户将用户的登录信息,人,保存到本地的文件中Cookie中. Name,value -声明时 new Co ...
- java 积分源码_Java生鲜电商平台-积分系统搭建与源代码下载?(小程序/APP)
一.积分体系搭建思维导图 二.积分体系搭建第一步–制定积分基本规则 积分,是发给用户的一种虚拟货币,既然是货币,那意味着企业就要为之承担一部分营销费用,在搭建积分体系之前,一定要清晰地制定好积分的基本 ...
- java 微信 qq 登录_java实现 微博登录、微信登录、qq登录实现代码
微信,微博,QQ,这是现在目前用的最多的手机 APP,我们做产品哪能不跟他们不沾边,对于登录,我想谁也不想要多少个帐号密码,根本记不住! 为了增加用户体验,用户能够快速的注册登录,第三方账号进行登录注 ...
- java socket gui登录_java的socket服务端的GUI
这几天做了一个基于socket的宠物商店程序,其中服务端的图形化界面问题困扰了很久.今天终于解决,因此也对多线程有了更好的理解. 想很多新手一样,我其实犯了一个错误. 由于soket服务端端口监听用的 ...
- java课设电子门禁_Java 并发专题 : CyclicBarrier 打造一个安全的门禁系统
继续并发专题~ 这次介绍CyclicBarrier:看一眼API的注释: /** * A synchronization aid that allows a set of threads to all ...
- java 定时器 每天凌晨_java定时器 每天凌晨 固定执行一个方法
满意答案 x11893497 2014.05.28 采纳率:40% 等级:9 已帮助:312人 二.如果是需要Tomcat启动就能执行,不需要main方法的定时器的话: web.xml里面需要这 ...
最新文章
- 比JD-GUI还要好用的Luyten
- 隐藏input边框(ie6、ie7)
- 文档的管理计算机,如何使用FTP自动同步备份电脑文件数据?
- 史上最简单的SpringCloud教程 | 第十二篇: 断路器监控(Hystrix Dashboard)
- 设置与读取C#控制台应用程序Main函数中的参数args
- by mybatis 自定义order_springboot2结合mybatis拦截器实现主键自动生成
- HyperLogLog 命令详解
- linux java 错误日志_求大神解决啊啊 啊,看看这个怎么了,在LINUX运行完的错误日志...
- 北京已开通5G基站6324个,年内目标建设超1万个5G基站
- 使用tftpd32烧写内核(拯救你的“砖”)
- 测试音响声音啸叫软件,公共广播专业音响系统啸叫声与电流声排除方法_航天广电软件...
- 多智能体强化学习- COMA
- 周志华 《机器学习初步》 绪论
- html实现给微信发红包看照片,微信发红包看图片效果实现
- Mathorcup数学建模竞赛第四届-【妈妈杯】A题:“2048”游戏的数学基础及其取胜策略研究(附赛题解析及MATLAB代码)
- 计算机英语刘艺课文bc翻译,《计算机英语》原文译文和习题答案 刘艺
- 融媒发展背景下学龄前儿童交通安全主题绘本创作启示
- 途乐行入口页面html代码,途乐行旅游网站
- Week10——二阶魔方
- 山石网科防火墙基础上网配置_WebUI(最新版)
热门文章
- php删除excel文件,PHPExcel:HTML到Excel,写入删除excel文件中的CSS
- 并查集——家谱(洛谷 P2814)
- linux 只有命令指示,Linux命令行翻页?
- 【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(4)
- 2021 Gartner云数据库魔力象限,阿里云、华为云成国内唯二
- Oracle 20c 新特性:持久化内存数据库 - Persistent Memory Database
- 一文带你搞懂从动态代理实现到Spring AOP
- 你掉进过“伪敏捷”的陷阱吗?
- 技术解读丨GaussDB数仓高可用容灾利器之逻辑备份
- 14岁AI天才的钢铁之心