手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android学习笔记--通过Application传递数据代码示例
Android学习笔记--通过Application传递数据代码示例
摘要:在整个Android程序中,有时需要保存某些全局的数据(如:用户信息),方便在程序的任何地方调用。在Activity之间数据传递中有一种比较...

在整个Android程序中,有时需要保存某些全局的数据(如:用户信息),方便在程序的任何地方调用。在Activity之间数据传递中有一种比较使用的方式,就是全局对象,使用过J2EE的都应该知道JavaWeb的四个作用域,其中Application域在应用程序的任何地方都可以使用和访问,除非是Web服务器停止,Android中的全局对象非常类似于JavaWeb中的Application域,除非是Android应用程序清除内存,否则全局对象将一直可以访问。

在启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此主进程上运行。所以,在同一Application中所有的Activity都可以通过Activity.getApplication()方法获取到同一个Application对象,继承Application类,即可访问自定义数据。

简单来说,使用Application传递数据步骤如下:

创建新class,取名MyApp,继承android.app.Application父类,并在MyApp中定义需要保存的属性,如:用户名,用户类型。

在Activity中,通过Activity.getApplication()方法获取到MyApp对象(需要强制转换),对其数据进行操作。

修改AndroidManifest.xml文件中的application节点的android:name属性(android:name=".MyApp")。

代码示例

步骤一:

复制代码 代码如下:

public class MyApp extends Application {

private String name;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

@Override

public void onCreate() {

// TODO Auto-generated method stub

super.onCreate();

setName("Dick");

}

}

步骤二:

复制代码 代码如下:

public class MainActivity extends Activity {

private Button btn;

private MyApp myApp;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

btn=(Button)this.findViewById(R.id.btn);

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

myApp=(MyApp)getApplication();

myApp.setName("jack");

Intent intent=new Intent(MainActivity.this, otherActivity.class);

startActivity(intent);

}

});

}

}

步骤三:

复制代码 代码如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="cn.bgxt.staticchuandi"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="17" />

<application

android:name=".MyApp"

android:allowBackup="true"

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:theme="@style/AppTheme" >

<activity

android:name="cn.bgxt.staticchuandi.MainActivity"

android:label="@string/app_name" >

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name=".otherActivity"/>

</application>

</manifest>

【Android学习笔记--通过Application传递数据代码示例】相关文章:

Android开发笔记之: 数据存储方式详解

Android动画之3D翻转效果实现函数分析

Android 实用工具之emulator介绍

Android开发之软键盘用法实例分析

android操作SQLite增删改减实现代码

Android 使用Intent传递数据的实现思路与代码

Android基站定位原理及实现代码

Android自定义Adapter的ListView的思路及代码

Android开发笔记之:Splash的实现详解

Android列表实现(1)_数组列表实例介绍

精品推荐
分类导航