2015-11-22 55 views
0

當應用程序啓動時,我必須立即運行我的應用程序的進程。我知道onCreate方法,但每次創建活動時都會調用整個應用程序本身是否有onCreate方法?檢查應用何時啓動?

說我要運行的過程中,我們可以把它叫做A,在應用的開始。我通常把它放在我的應用程序的第一個活動,在onCreate,但被多次調用,每當我去回到我的第一項活動。

1. App starts-> 
2. First Activity starts-> 
3. Process A starts 
4. First Activity starts-> 
5. Process A starts 

在這裏,你可以看到,進程A是入門每一個第一次活動開始時間。相反,有什麼辦法可以做到這樣嗎?

1. App starts 
2. Process A starts 
3. First activity starts 
4. Second activity starts 
5. etc...Process A never starts again, until the app is opened again 

現在,有沒有什麼辦法,我可以有一個過程,如果應用程序走了不重新啓動,甚至例如:

1. App starts 
2. Process A starts 
3. First activity starts 
4. Second activity starts 
5. User presses home menu 
6. App starts again, but since user never closed app in multitasking, `process A never started` 

感謝您對我怎麼能做到這一點的專家幫助,

Ruchir

+0

你要啓動的過程只有一次,當用戶啓動第一次,你永遠不希望它在未來的發射重新開始?或者,在上一個步驟中,步驟6中的「過程A從未開始」是什麼意思? – cgr

+0

@cgr我的意思是,如果用戶真的關閉了應用程序,然後再次打開它,音量應該會增加。但是,如果用戶只是進入主菜單,然後回到應用程序,則不要開始處理 –

+0

@cgr,你能設法達到你想要的效果嗎?我很好奇什麼解決方案爲你工作,以便我記住這一點。 Archit的解決方案是好的? – cgr

回答

1

你必須創建一個擴展應用程序,然後一個類來創建自己的自定義應用程序類覆蓋的onCreate(就像你在任何活動),並且把該代碼英寸

public class MyApplication extends Application { 
public void onCreate() { 
    //your process A code 
} 
} 

你也必須告訴男人如果你正在使用自定義的應用程序類。你可以做到這一點,在你的AndroidManifest.xml文件,你必須將name元素設置爲您新的應用類的位置:

<application 
    android:name="com.packageName.example.MyApplication" 
    android:label="@string/app_name" 
    android:logo="@drawable/ic_launcher_no_text" > 
+0

即使我剛進入主菜單並返回到應用程序,是否會調用myApplication?無需實際關閉應用程序? –

+0

MyApplication在應用程序的整個生命週期中只被調用一次 –

+0

好吧,如果我只是按下home按鈕,然後返回到應用程序,那麼將不調用「MyApplication」,對吧? –

0

Archit解決方案似乎不夠好。 您也可以嘗試通過以下How to create an Android Activity and Service that use separate processes運行在不同的進程啓動活動的「第一」活動,並提及類機器人:名字=「android.intent.category.DEFAULT」到它,所以它會權在啓動之前的任何活動出現。參見如何同時有兩個發射活動中使用類別默認

Two launcher activities

這應該照顧按下home鍵和殺滅應用情況爲好。

我不知道這是你的最佳途徑。可能是Archit的答案或這個。你爲自己做一些研究。

相關問題