java - 返回导航时传输数据

标签 java android lifecycle back-button

我有 4 项 Activity 。从家庭 Activity 中,您可以导航到其他 3 个 Activity 。该应用程序有声音,并且每个 View 上都有一个用于静音的按钮。当我从家庭 Activity 中打开 3 个 Activity 之一时,“静音与否”值将通过intent.putExtra 等传输...当我在家庭 Activity 中静音时,它工作正常,但是如何home-activity 是否知道我是否在 3 个 Activity 之一中进行了更改并静音,并且当我使用后退按钮返回时也静音?这是覆盖后退按钮的正确方法吗?

感谢您的帮助!

最佳答案

在回答您的问题时,您需要开始每项 Activity 以获得结果。说你有 A -> B -> C -> D 每个都会​​开始计算结果。然后您可以在完成任何 Activity 之前设置结果。可以找到这方面的示例 here .

但是,我想我知道一个更简单的方法。如果我错了请纠正我,但是声音是否静音是否适用于整个应用程序?如果是这样,只需在首选项中设置一个 boolean 值,然后在每个 Activity 中检查它。您可以这样做:

将变量放入首选项:

  Boolean shouldBeep = true;


  //inside the mute/unmute button listener(or whatever)

  SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
  SharedPreferences.Editor editor = settings.edit();
  editor.putBoolean("shouldBeep", shouldBeep);

  editor.commit();

然后检索该值:

   SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
   boolean shouldBeep = settings.getBoolean("shouldBeep", false);

关于java - 返回导航时传输数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13461655/

相关文章:

java - 驱动 Api 电话

android - 使服务生命周期独立于 Activity

java - 在jsp中打印 session 属性

java - 如何在java中查找用户输入的三个数字的异或

android - Asterisk 中的文件传输支持

java - numberOfViewsInSession 和多个选项卡的问题

python - 使用 SageMaker Lifecycle 配置在启动时执行 jupyter notebook

android - 服务运行时的应用程序类生命周期

java - 迭代从 JSP 上的 servlet 发送的 ArrayList?

java - @RestController 未找到,如果主类不在顶级包中