Android应用没有响应后退按钮

时间:2014-07-04 21:51:06

标签: android multithreading scheduled-tasks

我有一个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;       
}

如何确保用户界面不会冻结并且应用停止后退按钮上的所有内容?

1 个答案:

答案 0 :(得分:1)

尝试将以下内容添加到您的活动中:

@Override
public void onBackPressed() {       
    finish();
}