Android 组件复用和进程关系
2010-09-10 01:06:00 来源:WEB开发网*/
public class ServerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.server_gui);
int myProcessID = Process.myPid();
Log.i("---ServerActivity----", myProcessID + "");
}
}
package com.ostrichmyself;
import android.app.Activity;
import android.os.Process;
import android.os.Bundle;
import android.util.Log;
/**
* 这个将被自身和外部调用
*/
public class ServerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.server_gui);
int myProcessID = Process.myPid();
Log.i("---ServerActivity----", myProcessID + "");
}
}
下面有三个有意思的过程:
三个试验:
试验一:
1. 模拟器关闭
2. 启动ServerAPK 发现MainServerActivity所在的进程为193
3. 触发MainServerActivity的Text让ServerActivity启动, 发现ServerActivity的进程号为193
4. 启动ClientAPK, 发现MainClientActivity所在的进程号为250
5. 触发MainClientActivity的Text让ServerActivity再次启动, 发现进程号为:193
结论: 如果Activity已经启动, 第三方调用公用的Activity, 将在已经启动的Activity进程中调用
实验二:
继续上面的试验:
1. 按返回键, 分别退出两个APK
2. 启动ClientAPK, 发现进程号为250
3. 触发MainClientActivity的Text让ServerActivity再次启动, 发现进程号为:193
4. 长按住Home健, 触发MainServerActivity的Text让ServerActivity启动, 发现ServerActivity的进程号为193
5. 触发MainServerActivity的Text让ServerActivity启动, 发现ServerActivity的进程号为193
结论: 进程没有销毁, 都在后台运行着
更多精彩
赞助商链接