今在网上看到这个问题,挺理论化的一个问题,值得掰扯
同一个应用程序的不同Activity可以运行在不同的进程中么?
这个问题重点是:一个应用程序的两个activity可以在两个进程中跑么?如草图(→_→)
好吧,好不容易画了个图传不上来….
直接上段子:
android:process=""
此属性强有力的证明了这个问题的可行性.翻了下老罗的博客,找到以下代码
public class ActivityStack {
......
private final void startSpecificActivityLocked(ActivityRecord r,
boolean andResume, boolean checkConfig) {
// Is this activity's application already running?
ProcessRecord app = mService.getProcessRecordLocked(r.processName,
r.info.applicationInfo.uid);
......
if (app != null && app.thread != null) {
try {
realStartActivityLocked(r, app, andResume, checkConfig);
return;
} catch (RemoteException e) {
......
}
}
mService.startProcessLocked(r.processName, r.info.applicationInfo, true, 0,
"activity", r.intent.getComponent(), false);
}
......
}
但既然android:process属性是写死在androidManfest中,那么什么情况下才会用到这个属性呢?
这两个需要跑在不同进程中的activity是否能被其他应用引用呢?还是只能按预设的逻辑泡在这个应用中呢?