0

アプリには、メイン アクティビティ (利用規約) と登録アクティビティがあり、その他のアクティビティもあります。ユーザーがアプリをインストールした後、アプリに同意して登録すると、ユーザーにはこれら 2 つのページが再び表示されなくなります。終了をクリックせずに突然終了した場合でも、それらのアクティビティは再び表示されません。共有設定を使用しました。機能していますが、ユーザーが終了をクリックせずに戻ると、アクティビティが再び表示されます。私を助けてください..ありがとう友達..

4

3 に答える 3

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;
}
于 2013-08-03T08:31:19.163 に答える
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 が開始するたびに、isSkip フラグの DB を更新します。

于 2013-08-03T08:51:42.447 に答える
0

起動アクティビティとして 1 つのタイム スクリーンを使用します。内部onResume()で、sharedPreference 値を確認します

優先値がデフォルト値でない場合は、次のアクティビティを呼び出してこれを終了します。

pref がデフォルトの場合は、変更します。

于 2013-08-03T08:35:55.240 に答える