2011-09-03 6 views
3

SecondActivity 한 번만 응용 프로그램을 처음 시작할 때만 표시해야합니다. 나는 이것을 (아래 참조) 구현했지만 실제로는 솔루션을 좋아하지 않는다. onResume()에서 레이아웃을 부 풀릴 필요가 있기 때문에 하드웨어 버튼이 SecondActivity에있을 때 비워야한다.처음으로 활동량을 보았습니다

public class TestActivity extends Activity { 
    public static final String PREFS_NAME = "MyPrefsFile"; 
    public static final String FIRST_RUN = "FirstRun"; 

    SharedPreferences sharedPreferences; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     sharedPreferences = getSharedPreferences(PREFS_NAME, 0); 

     if (sharedPreferences.getBoolean(FIRST_RUN, false)) { 
      setContentView(R.layout.main); 
     } else { 
      Intent i = new Intent(this, Second.class); 
      startActivity(i); 
     } 
    } 


    @Override 
    protected void onResume() { 
     super.onResume(); 
     setContentView(R.layout.main); 
    } 
} 

Second Activity에서 난 그냥 true로 플래그 FirstRun을 넣어. 내가 생각할 수있는

답변

4

을 실행하는 데 어떤 활동을 결정하지 않는 초기화 활성을 갖는 것입니다 이 ...

if (sharedPreferences.getBoolean(FIRST_RUN, false)) { 
    setContentView(R.layout.main); 
} else { 
    Intent i = new Intent(this, Second.class); 
    startActivity(i); 
    finish(); 
} 

그런 다음 onResume()에서 setContentView(...)을 제거 할 수 있습니다. 당신이 원하는 모든 활동으로 돌아갑니다 사용자를 방지하는 경우

2

베스트 웨이는 레이아웃을 가지고 당신이 startActivity(i)

처럼에 전화를 한 후 처음 Activity 전화 finish()에서 처음

0

, 다음과 같이 매니페스트 파일에 "noHistory"플래그를 추가 :

<activity android:name=".SecondActivity" android:noHistory="true"> 

을이 당신의 "시작 화면"활동 인 경우 앱 시작시에만 표시해야합니다.

<activity android:name=".SecondActivity" android:noHistory="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 
관련 문제