부팅완료시 ACTION BOOT COMPLETE 보내는 부분
분석버전 : Froyoandroid\frameworks\base\services\java\com\android\server\am
ActivityManagerService.java
final void finishBooting() {
IntentFilter pkgFilter = new IntentFilter();
pkgFilter.addAction(Intent.ACTION_QUERY_PACKAGE_RESTART);
pkgFilter.addDataScheme("package");
mContext.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String[] pkgs = intent.getStringArrayExtra(Intent.EXTRA_PACKAGES);
if (pkgs != null) {
for (String pkg : pkgs) {
synchronized (ActivityManagerService.this) {
if (forceStopPackageLocked(pkg, -1, false, false, false)) {
setResultCode(Activity.RESULT_OK);
return;
}
}
}
}
}
}, pkgFilter);
synchronized (this) {
// Ensure that any processes we had put on hold are now started up.
final int NP = mProcessesOnHold.size();
if (NP > 0) {
ArrayList procs = new ArrayList(mProcessesOnHold);
}
for (int ip=0; ip < NP; i++) {
this.startProcessLocked(procs.get(ip), "on-hold", null);
}
if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
// Tell anyone interested that we are done booting!
broadcastIntentLocked(null, null, // <------ 0="" android.manifest.permission.receive_boot_completed="" code="" false="" intent="" my_pid="" new="" ntent.action_boot_completed="" null="" process.system_uid="">------>
댓글 없음:
댓글 쓰기