Android按下后退或主屏幕按钮时,代码仍在运行

时间:2015-05-17 03:44:09

标签: android multithreading listener onpause

当我的应用活动在主页按钮或后退按钮进入后台时,某些监听器代码(如requestLocationUpdates或线程)仍在运行,为什么?

3 个答案:

答案 0 :(得分:0)

关于线程的问题:

总是在5运行方法中循环,你可以通过像isRunning这样的布尔控制 和一个由!isPaused控制的内部循环用于exmpl

如果你想"暂停"线程所以设置isPaused为true,如果你想杀死它,设置isRunning为false(isPaused为true)

在运行循环中让线程休眠100ms,这样他每100 + ms唤醒一次,检查它是否仍然暂停

答案 1 :(得分:-1)

您可以在类中实现这两个回调方法(其中扩展了Activity)并编写代码以在活动隐藏时以及在按下后退按钮(或其他按钮)时处理执行

Mammal mammal = list.get(i);
if(mammal instanceof TreeLemur){
    TreeLemur lemur = (TreeLemur)mammal;
    lemur.setAge(12);
}

答案 2 :(得分:-1)

在调用onpause方法时添加代码以暂停位置。这是我正在使用的。 locationManagerLocationManager

的对象
 @Override
    protected void onPause() {
         if(locationManager != null){
            locationManager.removeUpdates(GPSTracker.this);
        }
        super.onPause();

    }