Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 后退按钮是否无法调用stop()?_Android_Codenameone - Fatal编程技术网

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

Android 后退按钮是否无法调用stop()?,android,codenameone,Android,Codenameone,我的应用程序目前只有一个窗体,用于监听加速计传感器。在我的start()方法中,我打开侦听器,在stop()方法中,我关闭它。我已经验证了当我点击Android的home按钮时,监听器关闭,但当我点击back按钮时,应用程序退出,Android返回主屏幕,但监听器继续运行,这意味着从未调用stop()方法。我是否有责任用代码处理返回按钮以调用stop()方法?或者这是CodenameOne框架中的一个bug?在我看来,当返回按钮将用户返回主屏幕时,它应该为我调用stop()。我不知道Codena

我的应用程序目前只有一个窗体,用于监听加速计传感器。在我的
start()
方法中,我打开侦听器,在
stop()
方法中,我关闭它。我已经验证了当我点击Android的home按钮时,监听器关闭,但当我点击back按钮时,应用程序退出,Android返回主屏幕,但监听器继续运行,这意味着从未调用
stop()
方法。我是否有责任用代码处理返回按钮以调用
stop()
方法?或者这是CodenameOne框架中的一个bug?在我看来,当返回按钮将用户返回主屏幕时,它应该为我调用
stop()

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

使用后退按钮时,应调用Activity.onBackPressed()。仅仅因为您的活动不再可见并不意味着它已经收获,这可能解释了为什么没有(立即)调用
Activity.stop()

根据您的使用情况,
Activity.onPause()
也可能工作得更好


嗯。祝您的项目好运。

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

1)onBackPressed()
2)onPause()
3)onStop()
4)onDestroy()
当你按下主页按钮时,它只会呼叫

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

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

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

这个问题已经解决了。我已经验证过了,现在可以正常工作。

这似乎是codenameone中的一个bug,我们将修复它。谢谢你能重现这个bug吗?是的,这已经在开源存储库中修复了。非常好。谢谢。仅供参考,我们每周五都会部署修复程序,因此最迟应在下周五将其安装到设备上