实现数据共享功能:

  多个Activity里面,可以使用Application来实现数据的共享,因为对于同一个应用程序来说,Application是唯一的。

1、实现全局共享的数据App.java继承自Application:

    public class App extends Application {

      private String textData = "default";

      public void setTextData(String textData) {
         this.textData = textData;
      }
      public String getTextData() {
         return textData;
      }
    }

并配置AndroidManifest.xml:android:name=".App"

2、创建类Main2继承自Activity(会在启动页面呈现两个图标,这两个Activity都是应用程序的入口),

   并配置AndroidManifest.xml:

  <activity android:name=".MainActivity" android:label="Main1">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />  <!--启动-->
    </intent-filter>
  </activity>
  <activity android:name=".Main2" android:label="Main2">
    <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
  </activity>

3、创建main1.xml和main2.xml,都是同一布局:

  <TextView
    android:text="展示保存的内容"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView" />

  <EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/editText" />

  <Button
    android:text="保存"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/btnSaveData" />

4、MainActivity.java和Main2.java的功能实现:

  public class MainActivity extends AppCompatActivity {

    private TextView textView;
    private EditText editText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main1);  //setContentView(R.layout.main2);

      textView = (TextView) findViewById(R.id.textView);
      editText = (EditText) findViewById(R.id.editText);
      textView.setText("共享的数据是:"+getApp().getTextData());

      findViewById(R.id.btnSaveData).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
          getApp().setTextData(editText.getText().toString());
          textView.setText("共享的数据是:"+editText.getText().toString());
        }
      });
    }
    public App getApp(){
      return (App)getApplicationContext();
    }
  }

Application的生命周期:

1、App.java文件:

    public void onCreate() {    //在创建的时候被执行
          super.onCreate();
    }

    public void onTerminate() {  //(一般情况下不会执行,只有在模拟环境下才执行)结束时执行
         super.onTerminate();
    }

    public void onLowMemory() {  //在低内存时执行
           super.onLowMemory();
    }

    public void onTrimMemory(int level) {  //程序在进行内存清理的时候执行
           super.onTrimMemory(level);
    }

    public void onConfigurationChanged(Configuration newConfig) {  //配置发生改变的时候执行
           super.onConfigurationChanged(newConfig);
    }

2、初始化操作:

    Application 的onCreate函数会比被启动Activity的onCreate函数先执行:App的onCreate函数会比被MainActivity

  或是Main2的onCreate函数先执行。

Android中Context的理解及使用(二)——Application的用途和生命周期的更多相关文章

  1. (四)Android中Context的理解与使用

    一.Context的作用 Context可用于访问全局资源. public class MainActivity extends Activity { private TextView tv; @Ov ...

  2. Android中AIDL的理解与使用(二)——跨应用绑定Service并通信

    跨应用绑定Service并通信: 1.(StartServiceFromAnotherApp)AIDL文件中新增接口: void setData(String data); AppService文件中 ...

  3. Android中Context的理解及使用(一)——Context的作用

    Context的作用:用来访问全局信息的接口,通过Context进行资源的访问. 1.Context获取字符串资源: public class MainActivity extends AppComp ...

  4. Android中Context详解 ---- 你所不知道的Context(转)

    Android中Context详解 ---- 你所不知道的Context(转)                                               本文出处 :http://b ...

  5. Android中Context的总结及其用法

    在android中我们经常遇到这样的情况,在创建一个对象的时候往往需要传递一个this参数,比如:语句 MyView mView = new MyView(this),要求传递一个this参数,这个t ...

  6. Android中Context详解

    大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service.BroadcastReceiver.A ...

  7. Android中Context详解 ---- 你所不知道的Context

    转自:http://blog.csdn.net/qinjuning/article/details/7310620Android中Context详解 ---- 你所不知道的Context 大家好,  ...

  8. 转:Android中Context详解 ---- 你所不知道的Context

    转:http://blog.csdn.net/qinjuning/article/details/7310620 转:http://blog.csdn.net/lmj623565791/article ...

  9. Android中Context具体解释 ---- 你所不知道的Context

                                                                                                         ...

随机推荐

  1. APUE学习之多线程编程(一):线程的创建和销毁

    一.线程标识      和每个进程都有一个进程ID一样,每个线程也有一个线程ID,线程ID是以pthread_t数据类型来表示的,在Linux中,用无符号长整型表示pthread_t,Solaris ...

  2. JavaScript代码段整理笔记系列(二)

    上篇介绍了15个常用代码段,本篇将把剩余的15个补齐,希望对大家有所帮助!!! 16.检测Shift.Alt.Ctrl键: event.shiftKey; //检测Shift event.altKey ...

  3. javamail文件上传

    //创建entity package cn.bdqn.pojo; import java.io.File; public class Mail { private String from; priva ...

  4. C#体检套餐项目

    使用泛型集合写的一个小项目 1.要实现新建体检套餐,并且如果已经有了该体检套餐就不能再次新建, 2.要实现套餐列表动态更新,没添加一个体检套餐,在套餐列表里就自动添加一项; 3.向当前套餐类表里添加检 ...

  5. CCF 201512-4 送货(错误)

    直接用DFS深搜,检查了好久没能发现错误,贴上来以后慢慢看... /* DFS深度优先搜索 Edge保存边 u{v,been} cnt记录走过的街道 如果没有就return ;继续递归 */ #inc ...

  6. python基础-面向对象进阶

    一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被 ...

  7. 手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

    手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法 最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机 ...

  8. 在移动端中的flex布局

    flex布局介绍: flex布局很灵活, 这种布局我们也可以称之为弹性布局,  弹性布局的主要优势就是元素的宽或者高会自动补全; flex布局实例: 比如有两个div,一个div的宽度为100px, ...

  9. 在linux上如何通过composer安装yii

      Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库. b) 其中一些库依赖于其他库. c) 你声明你所依赖的东西. d) Composer 会找出哪个版 ...

  10. HTML 字符实体 &lt; &gt: &amp;等

    在 HTML 中,某些字符是预留的. 在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签. 如果希望正确地显示预留字符,我们必须在 HTML 源代码中使用 ...