我想在按下后退按钮时停止处理延迟/意图。我认为,我搜索了一些线程,但我没有相同的Handler逻辑。如果是的话,我道歉。
以下是我正在使用的代码:
else {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this, PollWebView_Gilmore.class);
startActivity(intent);
finish();
}
}, 10000);
答案 0 :(得分:1)
您必须在某个地方保存对Handler
和Runnable
的引用,然后您可以使用removeCallbacks(Runnable)
上的Handler
方法取消待处理的请求
示例代码:
public class MainActivity extends AppCompatActivity {
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this, MainActivity.class);
startActivity(intent);
finish();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
handler.postDelayed(runnable, 5000);
}
});
}
@Override
public void onBackPressed() {
super.onBackPressed();
handler.removeCallbacks(runnable);
}
}
答案 1 :(得分:1)
如果您不需要延迟,为什么要使用处理程序?只需删除它!
直接调用
Intent intent = new Intent(MainActivity.this, PollWebView_Gilmore.class);
startActivity(intent);
finish();
按下后退按钮时!
您还可以通过阅读以下帖子获得一个想法。
答案 2 :(得分:0)
如果你想对后退的意图做一些事情。你可以覆盖onBackPressed()方法。