2015-06-15 147 views
0

所以,我是Android中的一個小菜鳥,但我爲此搜索了很多東西,並且我無法找到解決方案:如何檢查意圖/活動是否已在Android中打開?

在我的導航抽屜中,每行都打開一個新的意圖。我如何檢查某個意圖是否打開/激活,以便我使用該意圖而不是創建新意圖?

我嘗試使用此解決方案:「羣衆演員」

Link

但我的問題是,抽屜打開同一類每次,但每個類都有不同例如:

public void itemClicked(View view, int position) { 
     Intent intent=null; 
     switch (position) { 
      case 1: 
       intent = new Intent(getActivity(), DisplayActivity.class); 
       intent.putExtra("ARGUMENT","SECTION 1"); 
       break; 
      case 2: 
       intent = new Intent(getActivity(), DisplayActivity.class); 
       intent.putExtra("ARGUMENT","SECTION 2"); 
       break; 
      case 3: 
       intent = new Intent(getActivity(), DisplayActivity.class); 
       intent.putExtra("ARGUMENT","SECTION 3"); 
       break; 
      }   
     startActivity(intent); 
    } 

我該如何檢查該類和這些附加項的意圖是否已經打開?

謝謝!

+1

您可以使用Application類中的'shared preferences'或extent來存儲上次/當前活動的可見。 –

回答

1

您可以使用shared preferences或範圍從您存儲可見

最後/當前活動Application類,如果你的應用擴展類或者你靶向設備API等級14以上可以實現ActivityLifecycleCallbacks

示例代碼

public class MyApplication extends Application implements ActivityLifecycleCallbacks { 
    private static boolean isMySomeActivityVisible; 

    @Override 
    public void onCreate() { 
     super.onCreate(); 

     // Register to be notified of activity state changes 
     registerActivityLifecycleCallbacks(this); 
     .... 
    } 

    @Override 
    public void onActivityResumed(Activity activity) { 
     if (activity instanceof YOURACTIVITY) { 
      isMySomeActivityVisible = true; 
     } 
    } 

    @Override 
    public void onActivityStopped(Activity activity) { 
     if (activity instanceof YOURACTIVITY) { 
      isMySomeActivityVisible = false; 
     } 
    } 

    // Other state change callback stubs 
    .... 
} 
+0

感謝您的回答!我現在要測試它。但是,我有意圖的演員怎麼樣?我可以在這裏查看這些嗎? – tj56

+0

另外,林不太確定我可以如何使用它。 「DisplayActivity」類的檢查在哪裏起作用?謝謝! – tj56

+0

當你想要檢查顯示哪個活動時,你可以創建這個單例並調用實例 –

相關問題