我有以下问题: 我做了一个简单的Android应用程序,使用处理程序每1000毫秒将一个整数加1,然后显示这个整数。 问题是,当我开始另一个活动时,同样的事情会发生,如果这是有意的话,这将是好的。在新活动中没有调用所提到的函数,但它似乎是。请查看我的代码并告诉我它出错的地方..
MainActivity:
public class MainActivity extends ActionBarActivity {
protected TextView text;
protected int position;
private Handler handler = new Handler();
private int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView) findViewById(R.id.text);
position=0;
SetButtonCLickListener();
counter();
}
protected void SetButtonCLickListener() {
Button btn = (Button) findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SwitchActivity();
}
});
}
private void counter() {
handler.removeCallbacks(count);
handler.postDelayed(count, 1000);
}
private Runnable count = new Runnable() {
public void run() {
i++;
text.setText("Count: " + i);
handler.postDelayed(count, 1000);
}
};
protected void SwitchActivity() {
if (position == 1) {
finish();
} else {
Intent intent = new Intent(this, MainActivity2.class);
startActivity(intent);
}
}
}
SecondActivity
public class MainActivity2 extends MainActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
text = (TextView) findViewById(R.id.text);
SetButtonCLickListener();
position=1;
}
}
答案 0 :(得分:0)
MainActivity2
有onCreate()
方法。在onCreate()
方法中,您调用super.onCreate()
,这会触发MainActivity
onCreate()
的{{1}}实施。 MainActivity
onCreate()
的实施是您通过调用counter()
方法启动计数器的地方。因此,当MainActivity2
启动时,其onCreate()
会调用MainActivity
的{{1}},其中会调用onCreate()
。
我的猜测是counter()
应该从MainActivity2
继承,而不是从Activity
继承。