2013-04-25 91 views
0

在我的主要活動如何在當前活動開始添加以下intent-filter當用戶按下Home鍵

<intent-filter> 
    <action android:name="android.intent.action.MAIN" /> 
    <category android:name="android.intent.category.HOME" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 

所以,當我按下home鍵我的主要業務是顯示。但我希望看到最後看到的活動,而不是主要活動。如何實現?

+1

的一種方式可能是,在每個活動的onCreate,在偏好設置字符串的實際活動的名稱。 因此,在您的主要活動中,只需檢查此字符串並開始正確的活動。 可以做的伎倆,可能有其他方式來做到這一點。 – 2013-04-25 12:20:08

回答

2

通過onPause存儲SharedPreference中的每個Activity,然後您可以糾正它。

@Override 
protected void onPause() { 
    super.onPause(); 

    SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE); 
    Editor editor = prefs.edit(); 
    editor.putString("lastActivity", getClass().getName()); 
    editor.commit(); 
} 

在您的MainActivity:

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     Class<?> activityClass; 

     try { 
      SharedPreferences prefs = getSharedPreferences("X", MODE_PRIVATE); 
      activityClass = Class.forName(
       prefs.getString("lastActivity", Activity1.class.getName())); 
     } catch(ClassNotFoundException ex) { 
      activityClass = Activity1.class; 
     } 

     startActivity(new Intent(this, activityClass)); 
    } 
} 
+0

「Activity1」應該是我主要活動的名稱還是什麼? – 2013-04-25 12:30:41

+0

是您的MainActivity – 2013-04-25 12:31:37

+0

這是解決您的問題的邏輯思想,它可能會導致像重新啓動MainActivity一樣的問題。如果你面對這樣的問題,那就用旗幟吧。希望它能正常工作。 – 2013-04-25 12:34:50

相關問題