后退按钮是否无法调用 stop()?
Does the Back Button fail to call stop()?
我的应用目前只有一个表单,它监听加速度计传感器。在我的 start()
方法中,我打开监听器,在 stop()
方法中,我将其关闭。我已经验证当我点击 Android 的主页按钮时监听器关闭,但是当我点击后退按钮时,应用程序退出并且 Android returns 到主屏幕,但是侦听器继续运行,这意味着 stop()
方法从未被调用过。我有责任使用调用 stop()
方法的代码来处理后退按钮吗?或者这是 CodenameOne 框架中的错误?在我看来,当后退按钮 returns 用户回到主屏幕时,它应该为我调用 stop()
。
我不知道 CodenameOne 框架,但我知道 Android SDK
。
Activity.onBackPressed()
应在您使用后退按钮时调用。仅仅因为您的 Activity 不再可见并不意味着它已被收割,这可能解释了为什么 Activity.stop()
没有(立即)被调用。
根据您的使用情况,Activity.onPause()
也可能会更好。
HTH。祝你好运 w/your 项目。
我不知道 CodenameOne 框架,但是当应用程序可见并且您按下后退按钮时,它会按以下顺序调用所有四种方法
1)onBackPressed()
2)onPause()
3)onStop()
4)onDestroy()
当你按下主页按钮时,它只会调用
1)onPause()
2)onStop()
方法
因此,当您按下后退按钮时,必须调用 onStop。
麻烦把源码贴出来,方便大家看清楚你的问题
我不确定您问题的所有细节,但是您可以通过调用该表单上的 setBackCommand 来解决它。
yourForm.setBackCommand(
new Command("closing the sensor listener"){
@Override
public void actionPerformed(ActionEvent ev){
// your code to close the listener
}
}
);
此问题已修复。我已经验证过了,现在可以正常使用了。
我的应用目前只有一个表单,它监听加速度计传感器。在我的 start()
方法中,我打开监听器,在 stop()
方法中,我将其关闭。我已经验证当我点击 Android 的主页按钮时监听器关闭,但是当我点击后退按钮时,应用程序退出并且 Android returns 到主屏幕,但是侦听器继续运行,这意味着 stop()
方法从未被调用过。我有责任使用调用 stop()
方法的代码来处理后退按钮吗?或者这是 CodenameOne 框架中的错误?在我看来,当后退按钮 returns 用户回到主屏幕时,它应该为我调用 stop()
。
我不知道 CodenameOne 框架,但我知道 Android SDK
。
Activity.onBackPressed()
应在您使用后退按钮时调用。仅仅因为您的 Activity 不再可见并不意味着它已被收割,这可能解释了为什么 Activity.stop()
没有(立即)被调用。
根据您的使用情况,Activity.onPause()
也可能会更好。
HTH。祝你好运 w/your 项目。
我不知道 CodenameOne 框架,但是当应用程序可见并且您按下后退按钮时,它会按以下顺序调用所有四种方法
1)onBackPressed()
2)onPause()
3)onStop()
4)onDestroy()
当你按下主页按钮时,它只会调用
1)onPause()
2)onStop()
方法 因此,当您按下后退按钮时,必须调用 onStop。 麻烦把源码贴出来,方便大家看清楚你的问题
我不确定您问题的所有细节,但是您可以通过调用该表单上的 setBackCommand 来解决它。
yourForm.setBackCommand(
new Command("closing the sensor listener"){
@Override
public void actionPerformed(ActionEvent ev){
// your code to close the listener
}
}
);
此问题已修复。我已经验证过了,现在可以正常使用了。