【发布时间】:2014-10-04 08:00:35
【问题描述】:
我正在开发一个测验应用程序,其中一个活动显示来自 SQLite 的问题和选项,在选择选项时,另一个活动显示 2000 毫秒的结果(它有一个计时器),然后它通过一个意图调用第一个活动。
因此,大多数交互是在 2 个活动之间进行的。但是每次调用我的 MainActivity 时,它都会一次又一次地重新初始化所有变量。
我在 onCreate() 中打开我的数据库连接,并保留一个计数器(可以计算已经问了多少问题),其值在第二个活动的意图之后没有保留。我很担心如何解决这个问题。
我对遵循的生命周期有点困惑。是否从第二个活动调用第一个活动以 onCreate() 开头,或者它也再次初始化实例变量。
这是我写的 onCreate() 方法:
public class MainActivity extends Activity {
protected static final int SCORE_INCREMENT = 5;
TextView question;
Button score, opt1, opt2, opt3;
MyDatabaseManager dbManager;
QuizManager quizManager;
private int quiz_counter =1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbManager = new MyDatabaseManager(getApplicationContext());
dbManager.open();
quizManager = new QuizManager(MainActivity.this, dbManager);
Toast.makeText(MainActivity.this, "Asking The First Question", 0).show();
askQuestion();
}
}
上面写的代码和我现在写的有什么区别吗...如果通过 Intent 再次调用活动
public class MainActivity extends Activity {
protected static final int SCORE_INCREMENT = 5;
TextView question;
Button score, opt1, opt2, opt3;
MyDatabaseManager dbManager = new MyDatabaseManager(getApplicationContext());
QuizManager quizManager = new QuizManager(this, dbManager);
private int quiz_counter =1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(MainActivity.this, "Asking The First Question", 0).show();
askQuestion();
}
}
这可能是一个愚蠢的问题。但这对我来说有点混乱。欢迎提出建议。
【问题讨论】: