編輯:關於Android編程
1、子Activity組件在進程內的啟動過程
在Android Activity組件的啟動過程http://blog.csdn.net/jltxgcy/article/details/35984557一文中,我們已經詳細分析了Activity的啟動過程,對於子Activity組件在進程內的啟動過程,我們只分析它們之間的不同。
主要是2處,1是不需要創建新的任務棧,2是不需要創建新進程和子線程。
第1點,體現在如下代碼上:
~/Android/frameworks/base/services/java/com/android/server/am
----ActivityStack.java
public class ActivityStack {
......
final int startActivityUncheckedLocked(ActivityRecord r,
ActivityRecord sourceRecord, Uri[] grantedUriPermissions,
int grantedMode, boolean onlyIfNeeded, boolean doResume) {
final Intent intent = r.intent;
final int callingUid = r.launchedFromUid;
int launchFlags = intent.getFlags();
......
if (sourceRecord == null) {
......
} else if (sourceRecord.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE) {
......
} else if (r.launchMode == ActivityInfo.LAUNCH_SINGLE_INSTANCE
......
}
if (r.resultTo != null && (launchFlags&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
......
}
boolean addingToTask = false;
........
boolean newTask = false;
// Should this be considered a new task?
if (r.resultTo == null && !addingToTask
&& (launchFlags&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
......
} else if (sourceRecord != null) {
......
// An existing activity is starting this new activity, so we want
// to keep the new one in the same task as the one that is starting
// it.
r.task = sourceRecord.task;
......
} else {
......
}
......
startActivityLocked(r, newTask, doResume);
return START_SUCCESS;
}
......
} 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) {
.....
}
.....
}
......
}和Android Activity組件的啟動過程http://blog.csdn.net/jltxgcy/article/details/35984557一文中,主要有一個區別,不需要創建新的任務棧。代碼如上面所示。還需要創建新進程和子線程。
Android實現個性化的進度條
1.案例效果圖2.准備素材 progress1.png(78*78) progress2.png(78*78)3.原理采用一張圖片作為ProgressBar的背景圖片(一
Android 通知欄Notification的整合 全面學習 (一個DEMO讓你完全了解它)
在android的應用層中,涉及到很多應用框架,例如:Service框架,Activity管理機制,Broadcast機制,對話框框架,標題欄框架,狀態欄框架,通知機制,
Android入門:多線程斷點下載詳細介紹
本案例在於實現文件的多線程斷點下載,即文件在下載一部分中斷後,可繼續接著已有進度下載,並通過進度條顯示進度。也就是說在文件開始下載的同時,自動創建每個線程的下載進度的本地
怎麼在12308網上訂汽車票 12308怎麼用 12308訂汽車票辦法
12308全國汽車票網,是由中國道路運輸協會和全國站場工作委會合作共建,是一個服務於全國旅客公路客運出行的互聯網平台。現在有很多小伙伴都在計劃著怎麼回家過年