Application中定义公用数据
来源:互联网 发布:侠客风云传优化怎么样 编辑:程序博客网 时间:2024/05/21 17:20
Android编写代码的过程中会遇到过很多数据传递的问题,很多人认为在Application中公开get() set()方法,这样Activity之间的传值就不用Intent跳转来回传值那么麻烦了,而这些数据就变成了全局的数据,岂不是很方便?但是这样做的最终结果会导致NullPointerException,下面我写一个Demo来测试一下这个问题:
Step 1:创建一个测试Application
class TestApplication extends Application{ String userName; String getUserName(){ return userName; } void setUserName(String userName){ this.userName = userName; }}
Step 2 创建SetActivity,为userName赋值:
public class SetActivity extends Activity { void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.writing); TestApplication test= (TestApplication)getApplication(); test.setUserName("GodLoveMichael"); startActivity(new Intent(this, GetActivity.class)); }}
Step 3:创建GetActivity取出userName的值显示到UI上:
public class GetActivity extends Activity{ private TextView mUserNameTv; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.get_activity_layout); mUserNameTv =(TextView) findViewById(R.id.username); TestApplication test = (TestApplication)getApplication(); mUserNameTv.setText(test.getUserName().size()); }}
Step 4 打开SetActivity 后按Home键使app 推到后台,过段时间之后app崩溃,当用户重新返回,想打开app时候,显示Log NullPointerException
这是因为当用户重新返回app时候GetActivity 重新恢复了onResume 的状态,但是TestApplication 却是一个被kill掉重新创建的过程,所以此时该Application中并没有当时SetActivity 存的“GodLoveMichael”,自然调用.size()的时候会报NullPointerException ;
0 0
- Application中定义公用数据
- Sun Application Server PE 8.0中公用类的存放位置
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 在android.app.Application中定义全局变量
- 定义系统公用变量方法
- 如何定义ADF BC 中 Business Rule 的公用正则表达式
- ASP公用数据访问类
- ASP公用数据访问类
- c++公用数据的保护
- c++公用数据的保护
- c语言
- 《sed & awk》读书笔记之 awk 篇
- 设计模式C++实现--享元模式
- 关于Codis的动态扩容
- nginx扩展模块,不能正常显示FastDfs上传的图片问题
- Application中定义公用数据
- udp如何实现可靠性传输?
- 个人记事本
- 第五章----编码/加密
- Yocto tips (9): Yocto 软件包的下载地址在哪
- 论文笔记——Mariana:Tencent Deep Learning Platform and its Applications
- 第一个程序
- 布尔值编辑风格-报表系统
- jq select操作全集