共享首选项导致多个活动

时间:2015-07-02 08:08:42

标签: android android-fragments android-activity sharedpreferences

我正在检查用户是否已使用SharedPreferences“登录”,方法是在onCreate中使用它。我也试过在onStart里面做这件事。但问题是,在“ProductCategories”对用户可见之后,当我点击移动屏幕的后退按钮时,我可以看到已打开多个ProductCategories活动。我继续点击几次后退按钮然后我得到了第一个活动“MainActivity”。

=COUNTIF(Sheet1!F:F,A1)

ProductCatedories.java不包含任何内容,因为它必须显示我在ProductCategories的xml文件中提到的名为HomePage.class的片段。我现在正在发布HomePage的代码:

package com.example.pager;

package com.example.pager;

import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

public class MainActivity extends FragmentActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();
    SharedPreferences sharedPreferences = getSharedPreferences("prefs",MODE_PRIVATE);
    if (sharedPreferences != null) {
        if (sharedPreferences.getBoolean("logged", false)) {
            startActivity(new Intent(this, ProductCategories.class));

        }
    } else {


        finish();
    }
}

public void register(View v) {
     Intent i = new Intent(this,Signupdetails.class);
     startActivity(i);

}

}

1 个答案:

答案 0 :(得分:0)

您可以将manifest中的ProductCategories Definition任务更改为singleTask:

 <activity
        android:name=".ProductCategories"
        android:launchMode="singleTask"/>