我想更改onBackPressed方法的某些值...我会覆盖它:
@Override
public void onBackPressed() {
final Handler backHandler = new Handler();
backHandler.postDelayed(new Runnable() {
public void run() {
exitCount = 0;
Log.d("exitCount", "exitCount: " + exitCount);
}
}, Toast.LENGTH_SHORT);
}
但问题是处理程序立即发布......没有延迟。我在哪里做错了? 对不起,如果这是一个蹩脚的问题,我在Android上很新。提前谢谢。
答案 0 :(得分:2)
这是因为Toast.LENGTH_SHORT
值为零。尝试使用您选择的延迟值声明常量。见here
答案 1 :(得分:1)
使处理程序成为活动的一部分(或者如果不是UI线程则将消息发布到的线程的一部分),并使用毫秒延迟而不是Toast.LENGTH_SHORT,其值为零,因此它将立即发生。
public class SomeActivity extends Activity {
private Handler mHandler = new Handler();
@Override
public void onBackPressed() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("tag", "Hello, Handler!");
}
}, 1000); // one second
}
}
答案 2 :(得分:0)
使用belo代码我希望它能运作。
runOnUiThread(new Runnable() {
@Override
public void run() {
backHandler.postDelayed(new Runnable() {
public void run() {
exitCount = 0;
Log.d("exitCount", "exitCount: " + exitCount);
}
}, Toast.LENGTH_SHORT);
}
});