听起来很愚蠢,但简单的增量计数器在我的Android应用程序中不起作用。
我在app中有两个活动,每个活动都有一个计数器,每次调用onCreate方法时都会递增。当我在活动之间切换时,第一个活动效果很好,但另一个活动不算数。
我使用相同的行来创建这样的变量:
private int mCreate;
然后我只是在onCreate方法的每个类中以相同的方式递增它:
mCreate++;
此变量用于两个不同的类,因此它不应该是一个问题。这是我的第一个Android应用程序,所以我需要一些帮助。
第二个活动的整个代码。我没有展示第一个,因为唯一的区别在于setOnClickListener方法。
public class ActivityTwo extends Activity {
private final static String TAG = "Lab-ActivityTwo";
private int mCreate;
private TextView mTvCreate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
mTvCreate = (TextView) findViewById(R.id.create);
Button closeButton = (Button) findViewById(R.id.bClose);
closeButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
Log.i(TAG, "Entered the onCreate() method"); // to check if the inCreate method was called
mCreate++;
mTvCreate.setText("onCreate() calls: " + mCreate);
Log.i(TAG, "mCreate = " + mCreate); // just to check if I implemented the TextView worng
displayCounts();
}
答案 0 :(得分:1)
你的第二个计数器没有工作的原因是因为在完成一个活动之后所有的变量和对象都被销毁并被GC释放。下次您呼叫该活动时,它将从头开始创建,并且您的计数每次都保持不变。
就像@Opoo所说,如果你想得到计数,你应该在Application类中定义静态变量。