2011-05-20 67 views
9

我有這種情況,我必須從我的mainActivity啓動一個活動。但我希望這個新的活動作爲一個新的進程開始(使用新的進程ID)。是否有可能在android中實現這一點。 任何幫助表示讚賞。是否可以啓動一個活動作爲一個新進程

+0

「但我希望這個新的活動作爲一個新的進程啓動(使用新的進程ID)」。 - 爲什麼?我可以想到沒有很好的理由。 AFAICT,你所要做的就是廢棄RAM,廢舊CPU和廢舊電池,這些都沒有任何好處。 – CommonsWare 2011-05-20 10:20:04

+0

爲了通過反覆啓動新程序來重載系統......有一個衆所周知的錯誤,一旦達到PID限制並且ADB嘗試重新啓動,就會讓您訪問root用戶。它在超級用戶模式下啓動。完成它的活動後,它會嘗試將其權限設置爲普通用戶,但是由於達到了PID上限,該進程將失敗。您只剩下shell訪問權限和root權限。這是我的猜測,爲什麼他想要它;) – 2011-05-20 18:55:08

+1

我不知道OP爲什麼要這樣做,但我有一個用例:我想開始,然後關閉一個我不知道的第三方庫自行清理(在同一過程中不能安全地重新啓動)。能夠使用新的JVM和本地庫的新實例啓動新進程可能很重要。 – 2014-08-27 00:29:38

回答

15

只要把安卓過程= 「:ProcessName」爲您的活動在AndroidManifest.xml

<activity 
    android:name=".YourActivity" 
    android:screenOrientation="portrait" 
    android:process=":YourProcessName"> 
    <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

在這種情況下, 「YourActivity」 將在名爲 「YourProcessName」 等進程中運行。

+0

你可以多給一點解釋。我不知道。 – 2012-06-13 09:58:25

+0

它將簡單地爲活動設置一個新的過程,它與以前使用的另一個過程不同。通過這種方式,您可以針對activity1擁有一個process1,對於activity2可以擁有一個process2。 – 2012-07-26 18:34:10

+1

@AndroSelva我的主要活動正在運行。是否可以啓動與另一個進程相同的活動? – 2013-06-13 23:32:35

相關問題