Application就一挺熟悉又陌生的类,今天看了一下API,大概了解了一下。写了一个demo,贴上来,备查。 Base class for those who need to maintain global application state. You can provide your own implementation by specifying its name in yourAndroidManifest.xml's <application> tag, which will cause that class to be instantiated for you when the process for your application/package is created.


API如就说,大概意思就Application可以保存全局变更,而且你还可以自定义,通过配置AndroidManifest.xml中的Application标签的name字段可以配置自定义的Application,并且你的应用一启动时,这个Application就会启动。


看了看方法,有四个, onConfigurationChanged(ConfigurationnewConfig), onCreate(), onLowMemory(), onTerminate()。大概看了下下,做了下试验,只懂了一个onCreate(),它比入口Activity的onCreate()先初始化,应该也就是 which will cause that class to be instantiated for you when the process for your application/package is created. 不多说了,贴代码吧。

自定义的Application,定义了两个变量,字符串变量params及一个Actitvity:

package com.ghli.applicationtest;import android.app.Application;import android.util.Log;public class MyApplication extends Application {private static final String TAG = "MyApplication";//自定义的变量private String param1;private ApplicationTest firstAct;public String getParam1() {return param1;}public void setParam1(String param1) {this.param1 = param1;}public ApplicationTest getFirstAct() {return firstAct;}public void setFirstAct(ApplicationTest firstAct) {this.firstAct = firstAct;}@Overridepublic void onCreate() {super.onCreate();Log.v(TAG, "onCreate");}}

主Activty,在onCreate方法设置MyApplication的一个参数:

import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class ApplicationTest extends Activity {private final static String TAG="ApplicationTest";private EditText etContent;private Button btnNext;private TextView tvTitle;private MyApplication myApplication;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);myApplication = (MyApplication)getApplication();myApplication.setFirstAct(this);etContent = (EditText)findViewById(R.id.content);btnNext = (Button)findViewById(R.id.next);tvTitle = (TextView)findViewById(R.id.title);btnNext.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//设置MyApplication中的值myApplication.setParam1(etContent.getText().toString());Intent intent = new Intent(ApplicationTest.this, Activity1.class); startActivity(intent);}});Log.v(TAG, "onCreate");}public void setTitle(String title){tvTitle.setText(title);}}

第二个Activity,用于调用MyApplication的值

package com.ghli.applicationtest;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;public class Activity1 extends Activity {private TextView tvContent;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity1);tvContent = (TextView)findViewById(R.id.content);MyApplication myApplication = (MyApplication)getApplication();tvContent.setText(myApplication.getParam1());myApplication.getFirstAct().setTitle("在其它Activity中设置");}}

最重要的一点,在AndroidManifest.xml要设置application

<?xml version="1.0" encoding="utf-8"?><manifestxmlns:android="http://schemas.android.com/apk/res/android"package="com.ghli.applicationtest"android:versionCode="1"android:versionName="1.0"><applicationandroid:name=".MyApplication" //这个相当重要android:icon="@drawable/icon"android:label="@string/app_name"><activityandroid:name=".ApplicationTest" android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN" /><categoryandroid:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".Activity1"/></application></manifest>


更多相关文章

  1. Android(安卓)studio 下载安装
  2. Android(安卓)ZXing改横屏识别为竖屏识别[转]
  3. Android(安卓)NestedScrollView嵌套RecyclerView的问题
  4. Android(安卓)Studio Gradle 进阶设置
  5. Android多方案实现定时器功能
  6. Android(安卓)动态代理以及利用动态代理实现 ServiceHook
  7. Android(安卓)Looper和Handler分析
  8. android消息机制(handler运行机制)解析
  9. android实现gif图与文字混排

随机推荐

  1. “网关”的特点及存在的价值和意义
  2. 计算机端口号的分类和测试方法
  3. 华为防火墙双机热备(VRRP)的配置实例
  4. 华为ENSP模拟器的使用-在web界面登陆防火
  5. Win10系统怎么添加LOOPBACK环回接口呀?
  6. 华为交换机配置基于IP地址划分VLAN
  7. 华为配置基于MAC地址划分VLAN
  8. 【扯淡篇】APM,IT能力的一面镜子
  9. 华为路由交换技术:VRRP-虚拟网关冗余协议配
  10. 谈谈运维标准化