按后退按钮可返回首次启动的活动

时间:2017-11-12 16:58:29

标签: java android android-activity onbackpressed

我的活动是在我的应用首次启动时启动的(仅一次)。活动让用户选择主题。然后当他们按完后,我完成()活动。这会引导用户进入MainActivity。但是当用户按下后退按钮时,它会返回到首次启动的活动(我使用finish()关闭的活动)。但我想要的是当用户按下MainActivity中的后退按钮时应用程序应该关闭(总是)。我在两个类中都覆盖了onBackPressed。

我在这两个类中的onBackPressed方法如下所示:

@Override
    public void onBackPressed() {
        finish();
    }

MainActivity(代码的相关部分):

public class MainActivity extends AppCompatActivity  
 {

TopicAdapter adapter;
    private AdView mAdView ;

//-------GLOBAL VARIABLES-------------------

    AdRequest adRequest;
    ArrayList<Sections> gameList = new ArrayList<>();
    String json;
//-------------------------------------------

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

        SharedPreferences sharedPreferences = 
        getSharedPreferences("ShaPreferences", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor=sharedPreferences.edit();
        boolean  firstTime=sharedPreferences.getBoolean("first", true);

//Launch the topics selection activity for the first time
        if(firstTime) 
         {
            editor.putBoolean("first",false);
            editor.commit();
            Intent intent = new Intent(MainActivity.this, channels_activity.class);
            intent.putExtra("isFirst",true);
            startActivity(intent);
          }
          }

  @Override
    public void onBackPressed() 
    {
        finish();
    }
}

1 个答案:

答案 0 :(得分:1)

你只需要调用finish()

Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish();

并在清单中的活动上设置android:noHistory="true"here