2015-06-15 46 views
0

我嘗試長時間獲得前景活動,直到現在我還沒有設法獲得它。如何獲得foregrund活動實例?

我不知道它是否可能,但我沒有在我的應用程序活動中只有雜音。

在我的服務和我想要獲得的活動之間沒有數據傳輸。

我看到很多這類問題,但沒有適合我的需求。

我只需要得到一個實例,而不是ComponentName,不能描述當前的前景活動。我試過通過ActivityThread,ActivityManager,ActivityManagerService(即使我不能得到他的實例),等等。

Field activitiesField = activityThreadClass.getDeclaredField("mActivities");// won't help 
activityManager.getRunningTasks(rnd);// won't help either 

如果有任何refelection方式,聽衆或類似的東西,但不是靜態字段

+0

你想用你的活動實例做什麼 – tyczj

+1

不,你不能這樣做。這是設計。這是一項安全措施。一個應用程序不應該直接引用其他應用程序。 – Budius

回答

0

不知道爲什麼你想要一個Activity的實例或其他背景信息。我會建議以下。

如果你在Fragment之內,那麼你可以做getActivity() - 這會給Activity一個參考,然後你可以把它作爲你自己的Activity

否則,您可能需要考慮擁有BroadcastReceiver,它可以爲您啓動一個活動。

您不應該直接訪問Activity。如果您有需要訪問的方法/邏輯,您可能會考慮將它們重構爲輔助類。

編輯:

「在一個安全沙箱環境中應用程序運行,因此係統上的其他進程無法訪問您的代碼或私人數據。」從官方Android取得docs

+0

但是,正如我所提到的,即使活動不是我的應用程序的活動,我也需要前臺活動實例。 – ArBel

+1

@ user2367424你不能得到一個不屬於你自己的應用的活動的實例 – tyczj

+0

@tyczj你可能是對的,因爲我嘗試了很多不同的方式,而且我沒有得到這個活動。正如我所說,我不知道是否有可能......但是我想也許有人會知道。 – ArBel