0

我有主要活动(条款和条件)和注册活动以及应用程序中的其他活动。一旦用户同意并在安装后注册到应用程序,用户不应再次看到这两个页面。即使他没有点击退出就突然退出,那些活动也不应该再次出现。我使用了共享偏好。它正在工作,但是当用户没有点击退出并返回时,活动再次出现。请帮帮我。。谢谢朋友。。

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

使用一次屏幕作为启动活动。在其内部onResume()检查 sharedPreference 值

如果 pref 值不是默认值,则调用下一个活动并完成此操作。

如果 pref 是默认值,则更改它。

于 2013-08-03T08:35:55.240 回答
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 标志。

于 2013-08-03T08:51:42.447 回答