2010-06-09 6 views
14

좋아요, 그래서 저는 안드로이드 앱으로 놀고 있습니다.안드로이드 액티비티는 애플리케이션을 처음 열 때만 실행할 수 있습니까?

사용자가 찾고있는 것을 찾기 위해 기본 목록 화면으로 바로 이동하려는 경우가 90 %입니다. 그것이 내가 기본 화면으로 원하는 것입니다.

처음으로 사용자가 응용 프로그램을로드하면 목록 화면이 어떤 값을 갖기 전에 일부 구성이 필요합니다.

그럼 내 질문은 구성 활동을 처음 응용 프로그램을 열었을 때 표시 할 수있는 방법입니다. 그리고 나서 향후 공개를 위해 목록 화면을 표시합니다.

또한 구성 화면에 데모 버튼을 넣으려고합니다. 처음으로 감지하는 것 이상으로 가정합니다. 특히 사용자가 첫 번째 화면에서 특정 구성을 수행했는지 여부를 감지하려고합니다.

답변

4

나는 dweebsonduty의 방법을 좋아합니다. 이를 수행하는 유사한 방법은 구성 정보를 SD 카드의 파일에 저장하는 것입니다. 해당 파일을 확인하고 정보를로드하여 앱을 시작할 수 있습니다. 로드가 성공하면 다음 활동으로 이동하고 그렇지 않으면 사용자에게 입력을 프롬프트하는 적절한 활동을 시작합니다.

나는 똑같은 일을했지만 swiching 활동 대신에 내가 필요한 모든 정보를 얻을 때까지보기를 전환 한 다음 계속 진행합니다.

0

어떻게 구성을 저장 하시겠습니까?

SQLlite에 있다면 firstuse라는 테이블을 만들고 거기에 hasbeenused라는 필드를 넣고 null로 만들 수 있습니다. 그럼 응용 프로그램을 사용하면 거기에 1을 넣을 수 있습니다. 그런 다음 앱이로드 될 때마다 해당 필드를 읽을 수 있으며 해당 필드가 1이면 다음 활동으로 이동합니다.

+2

어쩌면 그는 추가 필드가 필요하지 않을 수도 있으며, 필요한 구성 정보가 거기에 있는지 확인하고, 그렇지 않을 경우 활동을 포기할 수 있습니다. 어쨌든 더 확장 성이있는 것 같습니다. – tloflin

+1

설정하려고했습니다. 그러나 공유 환경 설정을 사용하면 다시 버튼의 동작이 좋지 않습니다. 스택을 조작하는 방법을 찾았지만 동일한 유형의 활동에 대해서만 수행하려는 것 같습니다. –

17

사용자가 처음으로 앱을로드 한 후 사용자가 SharedPreferences에서 구성을 수행했는지 여부에 대한 세부 정보를 저장할 수 있습니다.

protected void storeSharedPrefs(String value) { 
     /* 
     * Storing in Shared Preferences 
     */ 
     editor.putString("first", value); 
     editor.commit(); //Commiting changes 
    } 

타임 어플리케이션에 확인 각각의 처음과 구성 세부 사항은

private boolean first_time_check() { 
     /* 
     * Checking Shared Preferences if the user had pressed 
     * the remember me button last time he logged in 
     * */ 
     String first = uPreferences.getString("first", null); 
     if((first == null)){ 
      return false; 
     } 
     else 
      return true; 
    } 
+4

getString)는 contains()를 사용하는 것입니다. – Plutor

+7

문자열 대신 boolean을 사용하는 것이 더 낫습니다. 'editor.putBoolean (PREF_FIRST_LAUNCH, false);'first_time_check은'return PreferenceManager.getDefaultSharedPreferences (getApplicationContext())를 포함합니다. \t \t .getBoolean (PREF_FIRST_LAUNCH, true); ' – Sylphe

+0

이 방법을 사용했습니다. 하지만 다시 버튼으로 문제가 있습니다. 앱이 이전 버튼을 사용하여 종료하면 다음에 앱이 시작될 때 첫 번째 앱이 아닌 것으로 간주합니다. 어떤 안드로이드 애플 리케이션에 대한 하나의 프로그래머가 응용 프로그램을 시작하기위한 모든 초기 값으로 설정할 수없는 원인이되지 않습니다. 내가 뭘해야하니? – Tina

2

많은 응용 프로그램이 실제로 된 SharedPreferences의 현재 버전을 저장할 확인 된 SharedPreferences 제대로 입력되었는지,로드 및에 대해 확인한다 업데이트가 설치되어 있는지 확인하십시오. "변경된 사항"팝업을 얻는 영리한 방법 또는 일부 설정이 적용되도록하는 것 (추가 설정을 추가하고 싶다면 두 번째 플래그가 필요할 것이므로 부울 플래그를 사용하는 것을 조심해야합니다. 세 번째 이후에는 지저분해진다.).

1

String VersionValue = "v.1.0"; final 문자열 PREFS_NAME = "MyPrefsFile";

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 

    if (settings.getBoolean(VersionValue, true)) { 
     //the app is being launched for first time, do something   
     NewDialogFragment newFragment = new NewDialogFragment(); 
     newFragment.show(getFragmentManager(), "New"); 
     // record the fact that the app has been started at least once 
     settings.edit().putBoolean(VersionValue, false).commit(); 
    } 

당신은 이런 식으로 할 아직도 u는 완전히 응용 프로그램이 업데이트되어 있는지 확인하는 방법을 이해하지 않으면 내가 그것을 그 작은 해결 방법을 시도 동일한 결과를 얻을 수 있습니다. 이 코드 대신 String VersoinValue를 현재 앱 버전으로 변경하면 안드로이드가 앱이 새로운 처음 앱이라고 생각하고 다음 업데이트에서 VersionValue를 변경할 때까지 u 코드를 한 번만 표시합니다.(:

+0

더 좋습니다! string.XML 파일에 문자열을 작성하고 주 activity.java 파일의 버전 번호와 VersionValue를 참조 할 수 있습니다. [OnCreate Meathod에서 버전 값과 물건을 사용하여 코드를 작성하십시오.] –

관련 문제