2014-05-12 119 views
-2

我有兩項活動:MainActivityEventActivity檢查使用意圖的活動是否還活着

每當我打開我的應用程序(默認爲MainActivity)並且它在SharedPreferences中有一個特定的標誌,它的意圖是EventActivity並完成自己。否則,它只是意圖。

EventActivity我有一個按鈕,點擊後,調用finish()並返回EventActivity

問題是,當我重新打開我的應用程序時,它將完成MainActivity,當我按下自定義後退按鈕時,它將關閉應用程序(因爲意圖處理已完成)。

如何檢查MainActivity未使用finish()

如果我能做到這一點,檢查是否完成我可以意圖。

謝謝。

+0

你的問題不是很清楚。你是什​​麼意思_「在'EventActivity'中,我有一個按鈕,當點擊它時,調用'finish()'並返回到'EventActivity'。」_你的意思是它調用'finish()'然後去回到'MainActivity'?如果是這樣,它如何回到'MainActivity'?它是否調用'startActivity()'返回到'MainActivity'? –

+0

您應該發佈一些代碼,以使其更清晰。 –

+0

'MainActivity'是'EventActivity'的父親可以嗎?當我啓動應用程序(在MainActivity中)時,我可以嘗試'EventActivity'並返回,對吧? 如果我在'EventActivity'並強制關閉我的應用程序,當我再次打開它時,它將從'EventActivity'開始,因爲當我第一次執行'EventActivity'的意圖時,我在會話中保存了一個標誌。現在,當我嘗試按下「後退按鈕」時,我的應用程序關閉(因爲我沒有任何其他活動在堆棧中)。那有意義嗎? –

回答

0

重寫的MainActivity在於所述onDestroy方法設定的MainActivity一個publicstaticBoolean字段。在該方法中將publicstatic字段設置爲true。在完成之前檢查它的值EventActivity,即當您從EventActivity回到MainActivity時。如果它的值爲true,則意圖從EventActivity開始MainActivity。並將其值設爲falseonCreateMainActivity

如下:

在MainActivity.java

public class MainActivity extends Activity { 
    public static boolean isMainActivityDestroyed = false; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     isMainActivityDestroyed = false; 
     . 
     . 
     .//Do something here 
    } 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     isMainActivityDestroyed = true; 
     . 
     . 
     .//Do something here 
    } 
} 

在EventActivity.java

public class EventActivity extends Activity { 
     . 
     . 
     .//Some methods 

     //Method which finishes EventActivity & starts MainActivity if destroyed 
     public void buttonOnClick() 
     { 
      if(MainActivity.isMainActivityDestroyed) 
      { 
       Intent i = new Intent(this, MainActivity.class); 
       startActivity(i); 
       finish(); 
      } 
     } 
} 

如果isMainActivityDestroyed變爲真那麼它就是一個指示MainActivity使用finish()

0

您可以創建自己的Application類延伸Application並從您的應用程序的onCreate啓動所需的活動。在清單中,您將刪除MainActivity的默認意圖過濾器。

+1

這不能工作。如果您沒有啓動活動(ACTION_MAIN和CATEGORY_DEFAULT),則應用程序將不會顯示在已安裝的應用程序列表中,用戶將無法啓動它! –

+0

解決了創建一個靜態單例類,該類在啓動之前保存最後一個活動。 –