2017-05-05 38 views
0

我在我的第一次活動中有一個按鈕,顯示「繼續」並開始新的活動(MainActivity意圖),但我發現可以通過重新啓動應用程序跳過該按鈕和第一次活動。所以我想確保跳過這個活動是不可能的。如何檢查首先是否被跳過?

這就是我一直在思考:

firstEntry.java - 在這種方法中,我在共享偏好將新值確認firstrun一直沒跳過(只添加如果值按鈕被點擊)。在MainActivity

btn.setOnClickListener(new View.OnClickListener() { 
@Override 
public void onClick(View v) { 
SharedPreferences.Editor editor = sharedpreferences.edit(); 
editor.putBoolean(skip, false); 
editor.commit(); 
Intent i = new Intent(getApplicationContext(), MainActivity.class); 
startActivity(i); 
finish(); 
} 

onCreate()方法

boolean skipper = prefs.getBoolean(skip, false); 
     if(skipper == true){ 
      Intent i = new Intent(getApplicationContext(), firstEntry.class); 
      startActivity(i); 
     } 

的onResume功能:

@Override 
    protected void onResume() { 
     super.onResume(); 
     if (prefs.getBoolean("firstrun", true)) {// Checks if application is on its first run 
      Intent i = new Intent(getApplicationContext(), firstEntry.class); 
      startActivityForResult(i, 1); 
      prefs.edit().putBoolean("firstrun", false).commit(); 
      finish(); 
     } 
    } 

如何檢查是否共享偏好方法 「firstrun」 已通過使用共享偏好跳過繼續按鈕值?

+1

我不是很清楚你想要實現什麼 – ELITE

+0

@ELITE防止跳過第一次活動出去點擊繼續按鈕 –

回答

1

改變下列中btn.setOnClickListener線(新View.OnClickListener()

editor.putBoolean(skip, false); 

editor.putBoolean(skip, true); 

然後在onCreate()方法firstEntry.java

boolean skipper = prefs.getBoolean(skip, false); 
    if(skipper == true){ 
     Intent i = new Intent(getApplicationContext(), MainActivity.class); 

     Log.i("firstEntry.java","skipped the activity"); 
     startActivity(i); 
} 
+0

它的工作雖然,你犯了一個錯誤,而不是在第一條目的if和意圖使船長== false,但我想你誤會了我。 –

+0

但如果你使skipper == false,firstEntry.java永遠不會跳過 –

+0

我想確保它永遠不會從主入口跳過而不是從firstEntry –