Android 的Application(可在不同的类中进行数据的操作)
2011-10-10 18:31
381 查看
有时候我们需要在Activity之外的类中修改Activity中的数据或是UI, 或者是要在自定义的类中要修改其它类中的值。这时候就变的很麻烦!这时候我们就需要一个全局的容器,来存放要共享的数据,就像J2EE中的Session。 当然,Android设计者肯定也考虑到了这一点。进入正题-----> Application(注: 本节只简单介绍一下使用方法,相信天才的码农们举一反三)
使用方法:
第一、实现自己的Applicaiton
第二、在Activity中定义Handler ,并注册Handler
第三、调用方法----在SecondActivity中进行操作
第四、千万不要以为这就完事大吉了! 一定要在AndroidManifest.xml中注册你自己定义的Application
使用方法:
第一、实现自己的Applicaiton
public class ApplicationContext extends Application { public static final int FLUSH_MAIN_ACTIVITY=1; private Handler main; public void setMainHandler(Handler handler){ main=handler; } public void flushMain(){ main.sendEmptyMessage(FLUSH_MAIN_ACTIVITY); } }
第二、在Activity中定义Handler ,并注册Handler
package com.sequel.text; import android.app.Activity; import android.app.Application; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; public class MainActivity extends Activity { private int count = 0; /** Called when the activity is first created. */ //定义Handler, Handler flushHandler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case ApplicationContext.FLUSH_MAIN_ACTIVITY: //在这可进行想要的操作 operat(); break; default: break; } super.handleMessage(msg); } }; private ApplicationContext appC; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); appC = (ApplicationContext) getApplication(); //注册Handler appC.setMainHandler(flushHandler); try { Thread.sleep(2000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } startActivity(new Intent(MainActivity.this,SecondActivity.class));//启动另一个Activity } public void operat(){ //..... System.out.println(count++); } }
第三、调用方法----在SecondActivity中进行操作
import android.app.Activity; import android.app.Application; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class SecondActivity extends Activity { /** Called when the activity is first created.*/ private ApplicationContext appC; private Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.second); button = (Button) findViewById(R.id.requestButton); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //这就是调用方法 appC.flushMain(); } }); appC = (ApplicationContext) getApplication(); } }
第四、千万不要以为这就完事大吉了! 一定要在AndroidManifest.xml中注册你自己定义的Application
<application android:icon="@drawable/icon" android:label="@string/app_name" android:name=".ApplicationContext">
相关文章推荐
- Android 的Application(可在不同的类中进行数据的操作)
- Android 的Application之一 ---- 在不同的类(Activity界面)中进行数据的操作
- android中点击item时通过不同数据进行不同的操作
- Android-JSONObject对JSON数据进行创建和读取的操作-刘宇
- Android中使用SQlite进行数据操作
- Android 使用VCard数据类型 异步进行联系人备份与恢复操作
- Android中使用SharedPreferences进行数据存储及文件操作
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- Android:在不同的Activity之间进行数据的共享
- 通过SSIS的“查找”组件进行不同数据源之间数据的合并操作
- Android—文件进行数据存储(四中操作模式)
- Android 连接Mysql进行相关操作——用PHP做中介以及JSON做数据交换
- Android中怎么使用Looper和Handler进行子线程数据操作和提交到UI线程
- Android java层与jni之间字符串数据传递需进行编码解码操作
- Android中使用SharedPreferences进行数据存储及文件操作模式
- Android学习【2】Activity之间通过Application进行数据传递
- Android中用application在两个activity中进行数据共享(1)
- 从ApplicationResources.properties中读取数据对文件进行操作.java
- Android 对Android客户端与服务端传递的Json数据进行加密、解密操作
- Android中使用SharedPreferences进行数据存储及文件操作模式