安卓中,进程与Application之间的关系 &&《老罗安卓源码分析》 笔记
来源:互联网 发布:淘宝女士棉袄 编辑:程序博客网 时间:2024/05/16 08:51
安卓的组件的可以指定运行在不同的进程之中,而一个进程只能拥有一个Application。
下面进行测试。
import android.app.Application;import android.util.Log;/** * Created by Administrator on 2015/8/15. */public class App extends Application { public static String str = "string"; @Override public void onCreate() { super.onCreate(); Log.d("MyApp", "onCreate()"); }}
新建一个App类,继承Application类,并且有个静态变量str;
新建三个Activity
MainActivity
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;public class MainActivity extends Activity implements View.OnClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.start_btn).setOnClickListener(this); findViewById(R.id.start_btn1).setOnClickListener(this); App.str = new String("this is a new string"); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.start_btn: startActivity(new Intent(this,NewProcessActivity.class)); break; case R.id.start_btn1: startActivity(new Intent(this,SameProcessActivity.class)); break; } }}
NewProcessActivity
import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;/** * Created by Administrator on 2015/8/15. */public class NewProcessActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_process); findViewById(R.id.finish_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("MyApp", "string is " + App.str); } }); }}
最后一个SameProcessActivity
import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;/** * Created by Administrator on 2015/8/15. */public class SameProcessActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_process); findViewById(R.id.finish_btn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("MyApp", "string is " + App.str); } }); }}
manifest文件
<application android:name=".App" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".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=".NewProcessActivity" android:process="com.example.administrator.mulprocesstest.newprocess"></activity> <activity android:name=".SameProcessActivity"></activity> </application>
在Manifest文件中指定Activity运行在不同的进程中
接下来查看运行结果
程序第一次启动时,会新建一个App,调用App类的onCreate();
接着我们启动NewProcessActivity
发现又调用了一次onCreate()。接着我们输出App.str;;
在MainActivity中,我们把App.str的值改为"this is a new string"
原字符串为"string"
在NewProcessActivity中,我们输出的结果为
发现App.str的值是没有变化的。
综上:每个进程对应一个Application。
0 0
- 安卓中,进程与Application之间的关系 &&《老罗安卓源码分析》 笔记
- 进程与线程之间的关系与区别分析
- 进程、线程与JVM之间的关系
- 进程与线程之间的关系
- 进程与线程之间的关系
- 进程与线程之间的关系
- 做饭与进程线程之间的关系
- 进程与线程之间的关系
- netty源码分析(十二)Channel与ChannelHandler及ChannelHandlerContext之间的关系分析
- Android Application与thread、stack、task、activity之间的关系
- 数组 与 指针 之间的关系 分析
- 分析奇数与偶数之间的关系
- 关于线程与进程之间的关系,今天学习了一下,在这做一下笔记。
- Nginx源码分析-4个重要结构之间的关系
- Nginx源码分析-4个重要结构之间的关系
- 源码分析Handler 、 Looper 、Message之间的关系
- Java的Main方法与Java进程之间的关系
- Java的Main方法与Java进程之间的关系
- 操作系统开发之——打开A20
- noip1998 多位数连接 (排序,字符串处理)
- [盈利指导] App推广干货,排名数据分析优化效果
- 随机数独局面的生成算法
- uva 12301 - An Angular Puzzle(几何)
- 安卓中,进程与Application之间的关系 &&《老罗安卓源码分析》 笔记
- 分享:高效开发Android App的10个建议
- 哈佛首位女校长福斯特在学生毕业典礼上的演讲--我们为什么焦虑
- MySQL常用技巧
- 浅谈ClassLoader
- mysql timestamp格式
- Oracle逻辑存储结构1—概述
- HDU 5084 HeHe (找规律)
- lightOJ 1248 - Dice (III) 概率DP