2013-08-03 102 views
0

我有主要活動(條款和條件)和註冊活動以及應用程序中的其他活動。一旦用戶同意並在安裝後註冊到應用程序中,用戶就不應該再次看到這兩個頁面。即使他突然退出而不點擊退出,這些活動也不應該再次出現。我使用了共享首選項。它正在工作,但是當用戶沒有點擊退出並返回時,活動再次出現。請幫我..謝謝啦..活動應該只出現一次

+0

向我們展示如何使用共享首選項。 – btse

+0

我認爲你已經把共享偏好設置代碼放在退出按鈕中。而不是在onPause中添加該代碼。 –

+0

請添加代碼 –

回答

1

試試這個代碼 本聲明將檢查活動是否在之前還是第一次運行和應對相應

private boolean isFirstTime() { 
    SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
    boolean ranBefore = preferences.getBoolean("RanBefore", false); 
    if (!ranBefore) { 
     // first time 
     SharedPreferences.Editor editor = preferences.edit(); 
     editor.putBoolean("RanBefore", true); 
     editor.commit(); 
    } 
    return !ranBefore; 
} 
0

使用一次屏幕發射活動。在其onResume(),的內部,請檢查sharedPreference值

調用下一個活動&完成此操作,如果pref值不是默認的 值。

如果pref是默認值,則更改它。

0

按我的理解,你需要有一個開關標誌(可能是需要存在於應用程序中的布爾標誌),同時您的應用程序啓動時,保持檢查的BaseActivity和帳篷傳遞給根據您的要求開展活動。 例如,

public class Test extends Activity { 

private static final String TAG = Test.class.getSimpleName(); 
private boolean isSkip= Boolean.FALSE; 

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

    if (isSkip) { 
     // Take the user to second Activity   
     startActivityB(); 
    } else {    
     // Take the user to first setup Page 
     startActivityA(); 

    } 

} 

private void startActivityA() { 

    Intent startA= new Intent(this, ActivityA.class); 
    startActivity(startA); 
} 

private void startActivityB() { 

      Intent startB = new Intent(this, ActivityB.class); 
    startActivity(startB); 
} 
} 

每當活動B開始,更新DB爲isSkip標誌。