android 中 application 的使用
2016-04-11 14:29
453 查看
android 中的application 对象在整个app的生命过程中只有一个,所以我们可以利用它自身的特点做一些共享的事情
demo如下
新建两个activity,和一个app类,此类来继承application类
1 app类:根据两个activity获取同一个共享区间的数据,所以app中定义一个属性data,供activity调用,并实现该属性的get/set方法,代码:
2 在MainActivity中的代码如下
注意:在获取app的对象的时候使用getApplicationContext,这个方法是系统自动创建context对象,如果要追求实例的创建步骤请自行查看android源码,另外在return app对象的时候不能使用new App(),这个样子把app当做成为一个普通类,而不具有系统context的生命周期以及对应的方法,在建立app类继承application是要在AndroidManifes.xml中进行注册
3布局文件如下
4 Main2Activity的代码和MainActivity中一模一样,两个activity为了简便作为一样的,为了能够显示出来在AndroidManifest.xml配置如下
好了所有的代码写完了,你可以运行得出结果了,application相当于一个全局容器,在里面存放的数据可以共享,以上就是我的第一篇android技术博客,写的很紧张也很罗嗦,本来就是一个很简单的知识点,希望大家见谅
demo如下
新建两个activity,和一个app类,此类来继承application类
1 app类:根据两个activity获取同一个共享区间的数据,所以app中定义一个属性data,供activity调用,并实现该属性的get/set方法,代码:
` public class App extends Application { private String textData = "default"; public String getTextData() { return textData; } public void setTextData(String textData) { this.textData = textData; } }
2 在MainActivity中的代码如下
private EditText mEditTest; private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initLayout(); //设置默认的data mTextView.setText("默认的数据"+getApp().getTextData()); } private void initLayout() { mEditTest = (EditText) findViewById(R.id.et_data); mTextView = (TextView) findViewById(R.id.tv_data); } // 获取application的方法 public App getApp(){ return (App) getApplicationContext(); } public void Save(View view){ String saveData = mEditTest.getText().toString(); getApp().setTextData(saveData); mTextView.setText("默认的数据"+getApp().getTextData()); }
注意:在获取app的对象的时候使用getApplicationContext,这个方法是系统自动创建context对象,如果要追求实例的创建步骤请自行查看android源码,另外在return app对象的时候不能使用new App(),这个样子把app当做成为一个普通类,而不具有系统context的生命周期以及对应的方法,在建立app类继承application是要在AndroidManifes.xml中进行注册
android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:name=".App" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"`
3布局文件如下
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.test.MainActivity"> <TextView android:id="@+id/tv_data" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:layout_marginTop="50dp" android:id="@+id/et_data" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:onClick="Save" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Save Data"/> </LinearLayout>
4 Main2Activity的代码和MainActivity中一模一样,两个activity为了简便作为一样的,为了能够显示出来在AndroidManifest.xml配置如下
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".test.Main2Activity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
好了所有的代码写完了,你可以运行得出结果了,application相当于一个全局容器,在里面存放的数据可以共享,以上就是我的第一篇android技术博客,写的很紧张也很罗嗦,本来就是一个很简单的知识点,希望大家见谅
相关文章推荐
- proguard用法
- Cocos2D中节点Z序的计算规则
- iOS内存管理
- Cocos2D中节点Z序的计算规则
- Cocos2D中节点Z序的计算规则
- 利用飞鸽协议实现通信功能
- 更改WebView的字体大小
- 如何使用SQLite数据库,android SQLiteOpenHelper使用实例
- 详解Android中Service服务的基础知识及编写方法
- IOS开发-使用Storyboard进行界面跳转及传值
- Android 4.4 kitkat以上及以下根据uri获取路径的方法
- android APP 启动传入参数
- android——屏幕适配大全(转载)
- oc与swift混编教程
- 关于XUtils的DBUtils使用遇到的错误
- ios 关于时间戳与时间转化的笔记
- Android 定制关机界面
- android安全之webview远程代码执行漏洞
- FFmpeg第一篇之Android平台上的so编译
- Android分包原理