1

讓我解釋我想完成什麼。 我有註冊活動,登錄活動和主要活動。註冊活動是登錄活動的父項,意味着如果用戶按下軟鍵,用戶可以返回該活動。有一次我從註冊到主活動去我清除所有活着的活動實例需要檢查一個活動是否有父活動存在或不存在

  • 從登錄活動的用戶可以去報名參加活動
  • 從註冊活動用戶可以跳過註冊並進入來賓模式在主活動或返回登錄活動是在明顯
  • 其父活動從主要活動的用戶可以去上申請活動

現在我擔心的是,如果我從簽上去來賓模式在主要活動[注該登錄活動實例將被清除]然後cl註冊註冊/註冊活動。我想知道它是否來自父母活動,即登錄活動或主要活動。

回答

0

您可以檢查是否正在運行:

public boolean isRunning(Context ctx) { 
    ActivityManager activityManager = 
(ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE); 

List<RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE); 

     for (RunningTaskInfo task : tasks) { 
      if (ctx.getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName())) 
       return true;         
     } 

     return false; 
    } 
+0

什麼是'baseActivity'這裏?家長活動,創造新的活動?謝謝:) –

0

您可以簡單地把一個額外的給你的意圖:

Intent intent = new Intent(CallingActivity.this, ActivityToStart.class); 
intent.putExtra("startedFrom", CallingActivity.class.toString()); 
startActivity(intent); 

請在新啓動的活動相應的檢查:

if(getIntent().getExtras().getString("startedFrom", null) != null) { 
//You were started from the specified Activity 
} 

如果您使用startActivityForResult()開始活動,您可以跳過上述步驟並使用getCallingActivity()

+0

目前我做了這些意圖傳遞額外的,它工作正常,但唯一的事情是我必須在我新創建的活動中進行檢查。我想知道是否有一個合適的方法來獲取調用它的父級活動。 [請注意,即時消息不會爲結果啓動該活動]。謝謝:) –

+0

不,沒有。請注意,一個活動可能不會從其他活動開始,但其他上下文也是如此 –

+0

是的,我明白你的觀點。謝謝 :) –

相關問題