0

我正在开发 Android:: 媒体播放器应用程序。为简单起见,该应用程序有 3 个活动:A、B 和 C 是活动。

当我从活动 A 切换到 B 时:活动 A 的 onPause() 和 onStop() 被调用。但是当我从 Activity A 进入主屏幕时,会调用相同的函数:onPause() 和 onStop()。

目前我面临一个问题:如果用户进入主屏幕:: 室外能见度、亮度等设置必须重置为系统,另一方面,如果我在活动之间切换,我必须保持这些值根据具体应用。

我如何区分这一点,我正在同一个应用程序(或)进入主屏幕的活动之间切换。

4

3 回答 3

1

我认为解决方案是检测用户何时按下 HOME 按钮。您可以通过覆盖方法来做到这一点

    onUserLeaveHint()

的活动类。

于 2011-07-22T11:12:25.350 回答
0

每次活动出现在屏幕上时,您都应该进行这些更改,并在它们从屏幕上消失时恢复设置。活动应该像单独的模块,所以减少它们的依赖是一件好事。

最好通过创建模板活动来完成。onResume()对和方法进行所有必要的更改,onPause()并从中派生所有其他活动。这样,您的设置管理代码将在每个活动中自动调用。

至于一般的应用程序状态,您无法真正检测到您的应用程序是否出现在屏幕上,因为 Android 中的应用程序只是一堆独立的组件(活动、服务、内容提供者和广播接收器)。没有一个应用程序本身具有特定的可见性状态。只有活动才有它,彼此独立。

于 2011-07-22T11:12:12.003 回答
0

也许您可以在使用应用程序时使用SharedPreferences来存储应用程序特定的设置。然后总是在 onStop() 中恢复

于 2011-07-22T11:12:26.247 回答