后退按钮是否无法调用stop()?

时间:2016-04-23 05:15:57

标签: android codenameone

我的应用目前只有一个表格,可以收听加速计传感器。在我的start()方法中,我打开了侦听器,在stop()方法中,我将其关闭。我已经验证了当我点击Android主页按钮时听众关闭,但当我点击后退按钮时,应用程序退出并且Android返回到主屏幕,但是听众继续前进,这意味着stop()方法永远不会被调用。我有责任使用代码来处理后退按钮来调用stop()方法吗?或者这是CodenameOne框架中的错误?在我看来,当后退按钮将用户返回到主屏幕时,它应该为我调用stop()

4 个答案:

答案 0 :(得分:1)

我不确定您的问题的所有细节,但是您可以通过在该表单上调用setBackCommand来解决它。

yourForm.setBackCommand(  
                        new Command("closing the sensor listener"){
                            @Override
                            public void actionPerformed(ActionEvent ev){
                                // your code to close the listener
                            }
                        }
                );

答案 1 :(得分:0)

我不知道CodenameOne框架,但我知道Android SDK

使用后退按钮时应调用

Activity.onBackPressed()。仅仅因为您的Activity不再可见并不意味着它已被收获,这可能解释了为什么Activity.stop()未被立即调用。

根据您的使用情况,Activity.onPause()可能也会更好。

HTH。祝你的项目好运。

答案 2 :(得分:0)

我不知道CodenameOne框架,但当应用程序可见并按下后退按钮时,它按以下顺序调用所有四种方法

1)onBackPressed()
2)onPause()
3)onStop()
4)onDestroy()

当您按下主页按钮时,它只会调用

1)onPause()
2)onStop() 

方法 所以,当你按下后退按钮onStop必须被调用。 请您输入源代码,以便人们能够清楚地理解您的问题。

答案 3 :(得分:0)

这已得到修复。我已经对它进行了验证,现在它正常运行。