編輯:關於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一文中,主要有一個區別,不需要創建新的任務棧。代碼如上面所示。還需要創建新進程和子線程。
1.案例效果圖2.准備素材 progress1.png(78*78) progress2.png(78*78)3.原理采用一張圖片作為ProgressBar的背景圖片(一
在android的應用層中,涉及到很多應用框架,例如:Service框架,Activity管理機制,Broadcast機制,對話框框架,標題欄框架,狀態欄框架,通知機制,
本案例在於實現文件的多線程斷點下載,即文件在下載一部分中斷後,可繼續接著已有進度下載,並通過進度條顯示進度。也就是說在文件開始下載的同時,自動創建每個線程的下載進度的本地
12308全國汽車票網,是由中國道路運輸協會和全國站場工作委會合作共建,是一個服務於全國旅客公路客運出行的互聯網平台。現在有很多小伙伴都在計劃著怎麼回家過年