如何不重复这些活动,并始终从我站立的地方继续......?

时间:2017-01-12 12:26:04

标签: android android-intent

我正在创建一个游戏,所以当我按下开始按钮从(A1.class)开始,所以如果用户完成了这个任务,他将意图到(结果活动)有继续(下一个)按钮,如果他按下去( A2.class等...)当我重新启动应用程序并且用户按下开始按钮从A2或A3继续,并且结果活动中的下一个按钮同样的事情我不希望A1出现(或A2如果他在A3任务)

MainActivity

start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //here I want to countiue the counting and not start from the first
            // let say i'm at A2 i want to go to A3
            Intent intent = new Intent(MainActivity.this , A1.class);
            startActivity(intent);
        }
    });

ResultActivity

 btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //here I want to intent to the new activity A3,A4 etc...
        }
    });
}

开始按钮从我

继续

下一个按钮意图进入下一个活动,我

1 个答案:

答案 0 :(得分:0)

如果您知道自己的Activities(例如他们的姓名),只要String活动被调用,您就可以SharedPref存储onDestroy()(=用户退出应用)。这个String会在它被销毁之前告诉你它是Activity

在应用启动(重新启动)上,检查您的SharedPrefs并执行switch语句,以确定Activites中哪一个是最后一个。请先阅读SharedPrefs,这样我就不会复制太多代码 - 所有内容都得到了很好的解释:

  • Reading and Saving items in SharedPrefs

    start.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //here I want to countiue the counting and not start from the first
            // let say i'm at A2 i want to go to A3
            Intent intent;
            SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
    
        // Here I get the activityName, which was stored onDestroy();
        String activityName = sharedPref.getString("key", "defaultValue");
    
        switch(activityName) {
            case "A1":
                intent = new Intent(MainActivity.this , A1.class);
                startActivity(intent);
            break;
            case "A2":
                intent = new Intent(MainActivity.this , A2.class);
                startActivity(intent);
            break;
        }
    
    }});
    

NextActivity的另一种方法可能是您定义一个带有活动名称的String数组。

String[] activitiesArray = new String[numberOfActivites];

现在onDestroy()您保存了哪些活动已被销毁,并且您知道Activityarray的索引,因此您还可以存储Index Activity在你的数组中1}}。

当您需要NextActivity启动时,只需致电检索Index的{​​{1}}并将其增加+ 1 ..这应该会为您提供Activity