我有一个ScheduledExecutorService,每20ms运行一次方法。
beeperHandle = scheduler.scheduleAtFixedRate(beeper, 0, 20, TimeUnit.MILLISECONDS);
此外,BluetoothService获取连续数据。我想在按下后退按钮时停止所有数据收集和预定方法。但是,即使我按下按钮,应用程序实际上并没有退出但仍在前台运行 - 基本上应用程序的UI停止响应。由于我使用ScheduledExecutorService创建一个新线程,因此不应该发生这种情况。并且,在反复按下后退按钮或按下主页按钮一段时间后,当应用程序最终离开屏幕时,数据采集和预定方法即使在那时也不会停止。我尝试在onDestroyView(),onDestroy()甚至onPause()方法中取消和停止它们。
public void onDestroy()
{
if (beeperHandle != null)
beeperHandle.cancel(true);
if(scheduler.isShutdown())
scheduler.shutdownNow();
mBluetoothLeService = null;
mBLEConnectionHandler = null;
mBLEReceiverHandler = null;
}
如何确保用户界面不会冻结并且应用停止后退按钮上的所有内容?
答案 0 :(得分:1)
尝试将以下内容添加到您的活动中:
@Override
public void onBackPressed() {
finish();
}