導航:首頁 > 操作系統 > androidhome應用程序

androidhome應用程序

發布時間:2022-09-18 04:54:23

android程序按HOME鍵後,重新點擊圖標是重起應用程序,而不是之前那個界面

當你按下手機的Home鍵的時候,系統會默認調用程序棧中最上層Activity的stop()方法,然後整個應用程序都會被隱藏起來,當你再次點擊手機桌面上應用程序圖標時,系統會調用最上層Activity的OnResume()方法,此時不會重新打開程序,而是直接進入,會直接顯示程序棧中最上層的Activity

不過。。。按home鍵,程序還會在後台運行,activity不會destroy,此時還是佔用系統內存的,當運行某項佔用內存的動作,內存不夠,系統會自動回收不常用的內存。你的程序在別的手機上跑時候很可能是被幹掉了。所有每次都會重新運行。。。

長按home鍵進入 與 點擊圖標進入的生命周期執行有那麼一點不一樣的。。

解決方法一、
在manifest裡面在你的程序啟動的第一個頁面的聲明裡,去掉android:launchMode="singleTask"等相關就ok了

解決方法二、

如果你必須要實現這個功能的話 可以參考下 下邊這篇文章。
http://dev.10086.cn/cmdn/wiki/index.php?edition-view-6259-1.html

思路大致就是: 按home鍵時記錄當前的activity(可以用SharedPreferences),下次執行程序的時候判斷SharedPreferences有沒有值,有的話就跳到這個activity,同時通過onSaveInstanceState 拿到之前的狀態。完成後記得把SharedPreferences弄空,不然你正常進入程序都不好使了。

PS: 法一可能有時候不好使。。。法二是我的想法,沒用過。

Ⅱ android應用程序按下HOME後隔一段時間再去進入就會報錯,請問如何防止在按下HOME後系統回收改應用的內存

系統回收內存是不可預知的。你只能通過對對象做判斷,如果被回收了直接return或程序不往下執行等操作。

Ⅲ 如何讓android程序,點擊home鍵之後,在任務欄出現,並且一直運行

notification 可以在通知欄加個圖標,

Ⅳ 如何啟動一個被home的android應用程序

Android系統的Home應用程序Launcher是由ActivityManagerService啟動的,而ActivityManagerService和PackageManagerService一樣,都是在開機時由SystemServer組件啟動的,SystemServer組件首先是啟動ePackageManagerServic,由它來負責安裝系統的應用程序,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析,系統中的應用程序安裝好了以後,SystemServer組件接下來就要通過ActivityManagerService來啟動Home應用程序Launcher了,Launcher在啟動的時候便會通過PackageManagerServic把系統中已經安裝好的應用程序以快捷圖標的形式展示在桌面上,這樣用戶就可以使用這些應用程序了,整個過程如下圖所示:

下面詳細分析每一個步驟。

Step 1. SystemServer.main

這個函數定義在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 1。

Step 2.SystemServer.init1

這個函數是一個JNI方法,實現在frameworks/base/services/jni/com_android_server_SystemServer.cpp文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 2。


Step 3.libsystem_server.system_init

函數system_init實現在libsystem_server庫中,源代碼位於frameworks/base/cmds/system_server/library/system_init.cpp文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 3。

Step 4.AndroidRuntime.callStatic

這個函數定義在frameworks/base/core/jni/AndroidRuntime.cpp文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 4。


Step 5.SystemServer.init2

這個函數定義在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 5。

Step 6.ServerThread.run


這個函數定義在frameworks/base/services/java/com/android/server/SystemServer.java文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 6。

Step 7. ActivityManagerService.main

這個函數定義在frameworks/base/services/java/com/android/server/am/ActivityManagerServcie.java文件中:


[java]view plain

implementsWatchdog.Monitor,BatteryStatsImpl.BatteryCallback{

......

publicstaticfinalContextmain(intfactoryTest){

AThreadthr=newAThread();

thr.start();

synchronized(thr){

while(thr.mService==null){

try{

thr.wait();

}catch(InterruptedExceptione){

}

}

}

ActivityManagerServicem=thr.mService;

mSelf=m;

ActivityThreadat=ActivityThread.systemMain();

mSystemThread=at;

Contextcontext=at.getSystemContext();

m.mContext=context;

m.mFactoryTest=factoryTest;

m.mMainStack=newActivityStack(m,context,true);

m.mBatteryStatsService.publish(context);

m.mUsageStatsService.publish(context);

synchronized(thr){

thr.mReady=true;

thr.notifyAll();

}

m.startRunning(null,null,null,null);

returncontext;

}

......

}

這個函數首先通過AThread線程對象來內部創建了一個ActivityManagerService實例,然後將這個實例保存其成員變數mService中,接著又把這個ActivityManagerService實例保存在ActivityManagerService類的靜態成員變數mSelf中,最後初始化其它成員變數,就結束了。


Step 8.PackageManagerService.main

這個函數定義在frameworks/base/services/java/com/android/server/PackageManagerService.java文件中,具體可以參考前面一篇文章Android應用程序安裝過程源代碼分析的Step 7。執行完這一步之後,系統中的應用程序的所有信息都保存在PackageManagerService中了,後面Home應用程序Launcher啟動起來後,就會把PackageManagerService中的應用程序信息取出來,然後以快捷圖標的形式展示在桌面上,後面我們將會看到這個過程。

Ⅳ 如何讓android程序,點擊home鍵之後,在任務欄出現,並且一直運行

是這樣的 安卓系統的應用程序有很多種退出方式 有些是有退出選項 有些是直接點返回鍵就退出 並且 有些軟體點擊返回後是在後台運行 這個不用管太多 如果是HOME鍵 是不會退出的 只是返回桌面 長按HOME可以調出正在運行的程序和最近幾次運行的程序

Ⅵ android手機長按home鍵時,程序還會繼續運行嗎,想把正在運行的程序暫停掉要哦怎麼辦

按home鍵,返回主界面,這個時候你之前運行的程序已經是暫停了,不需要你手工暫停.
如果你想完全中止到設置-應用程序-正在運行的服務,這里可以中止你的所有應用程序

Ⅶ android系統中home鍵調用的是什麼方法

iphone上的home鍵按一次home鍵,返回主界面。雙擊home鍵,出現後台運行程序。按電源鍵3秒後,同時按住home鍵10秒,松開電源鍵,保持home鍵15秒,進入DEF模式(越獄用)。 Android上的home鍵常見用法: 按一次返回主屏幕,或進入所有應用程序界面; 按home鍵不動,顯示最近打開的應用程序。 細節: 正在執行某應用程序的時候,當你按下手機的Home鍵的時候,系統會默認調用程序棧中最上層Activity的stop()方法,然後整個應用程序都會被隱藏起來,當你再次點擊手機桌面上該應用程序圖標時,系統會調用最上層Activity的OnResume()方法,此時不會重新打開程序,而是直接進入。會直接顯示程序棧中最上層的Activity。可是視為應用程序的「暫停」,」停止「(需要應用程序的支持)。

Ⅷ android中一個應用程序點擊home鍵後暫時退出程序,點擊原程序icon後進入程序原來的狀態,如何實現

這個問題不難!點擊home,程序退出到後台後,生命周期在onStop。
在onPause()做好數據備份。
onRestoreInstanceState(Bundle)數據恢復成活動狀態。

Ⅸ Android怎麼實現home鍵完全退出程序

需要使用BroadcastReceiver 廣播接收者,注冊HOME廣播。

  1. 創建廣播接收者

public class HomeReceiver extends BroadcastReceiver {

public void onReceive(Context context,Intent intent){

}

}


2.注冊廣播

<receiver android:name="com.xxx.xxx.HomeReceiver" >
<intent-filter>
<action android:name="android.intent.action.CLOSE_SYSTEM_DIALOGS" />
</intent-filter>
</receiver>


3.退出程序

int pid = android.os.Process.myPid(); //獲取當前應用程序的PID

android.os.Process.killProcess(pid); //結束當前進程

閱讀全文

與androidhome應用程序相關的資料

熱點內容
安卓手機連車載的叫什麼 瀏覽:221
怎麼讓自己的手機鍵盤變得好看app 瀏覽:53
能看qq的文件夾 瀏覽:513
android二維碼生成代碼 瀏覽:567
焦爐氣壓縮機 瀏覽:400
imap接收郵件伺服器地址 瀏覽:291
小喬肖恩解壓密碼 瀏覽:643
php網頁網盤源碼 瀏覽:181
簽到任務源碼 瀏覽:814
母親節的文案怎麼寫app 瀏覽:984
加密協議aes找不到 瀏覽:250
java伺服器端開發源碼 瀏覽:551
編譯器編譯運行快捷鍵 瀏覽:333
住房app怎麼快速選房 瀏覽:174
怎麼在電腦上編譯成功 瀏覽:214
單片機可調時鍾設計方案 瀏覽:192
qq文件夾密碼忘記怎麼找回 瀏覽:683
php擴展插件 瀏覽:608
解壓視頻廁所抽紙 瀏覽:952
app減脂怎麼用 瀏覽:452