回覆列表
  • 1 # 使用者4942622965310

    ActivityManager(int, int)是使用的getRecentTasks這個API。後臺掛一個服務,不斷檢測Activity堆疊。棧頂的Activity所屬的包名即可得知當前執行的程式。由於該 API 有安全隱患,從Android 5.0開始已被廢棄。雖然仍有一些奇技淫巧(process - How to get recent tasks on Android "L"?)可以實現,但測試過不大穩定。如果需要穩定可靠的監測當前執行的程式,請老老實實的向用戶申請Accessibility Service許可權。

  • 2 # lanfengz1

    android開發中獲取當前的Activity有多種情況;

    在Activity中,this就是當前的Activity,例如this.startActivity。

    在Fragment中可以透過 getActivity()來得到當前裝載這個Fragment的Activity。

    透過Activity堆疊來獲取當前顯示的這個Activity

    ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

    ComponentName cn = am.getRunningTasks(1).get(0).topActivity;

  • 中秋節和大豐收的關聯?
  • 從不同角度,怎樣看待電影《降臨》?