【问题标题】:How to start new activity without killing current activity如何在不终止当前活动的情况下开始新活动
【发布时间】:2016-03-22 15:59:25
【问题描述】:

我有 2 个活动(音频聊天活动和消息聊天活动)。目前这两个活动都工作得很好,但现在我希望这两个活动应该像 Whatsapp 信使一样同时工作。

在音频聊天活动中,有一个按钮可以进入消息聊天活动,但是一旦消息聊天活动开始,音频聊天活动就会停止工作。

有什么方法可以让我在这两个活动之间切换,比如 Whatsapp 信使。

【问题讨论】:

  • 您有显示您在做什么的代码片段吗?那会有所帮助。我猜你在某处打电话给finish()
  • 您的解决方案是将其中一个放入单独的进程中,例如服务。因此,就像您的活动正在处理音频聊天,但随后您会从服务接收文本更新,然后您的活动会在屏幕上更新。如果您希望在导航到应用程序的不同部分时继续进行音频聊天,则还需要单独的服务。
  • 问题具有误导性,请改写你想要的,更具体的细节。您不会杀死当前的活动,只是遵循生命周期(因此,A.onPause().B.onCreate()B.onResume()....如果需要,A 仍然存在。
  • 我认为您应该尝试在主要活动中使用片段

标签: android android-activity android-service whatsapp


【解决方案1】:

你应该改变方法。当你开始一个新的 Activity B 时,Activity A 被暂停,所以它不能工作。出于您的目的,您应该使用单个 Activity 并显示/隐藏元素(例如:消息框和音频框)

【讨论】:

    【解决方案2】:

    无法保证位于另一个活动之下的活动永远不会被杀死。 Android 可以这样做以在需要时回收内存。这就是 Android 旨在为资源有限的设备提供便利的方式。

    相反,如果您想让用户在文本和音频聊天之间无缝切换,则需要在同一个 Activity 中维护这两个组件之间的 UI。最简单的方法是在 Activity 的视图层次结构中简单地拥有两组不同的视图,并通过更改它们的可见性在它们之间切换。

    【讨论】:

      【解决方案3】:

      我希望这对开发者有所帮助,可能是新的或资深的,我有ActivityA和B,这是我的ActivityB类

      @Override
      public void onBackPressed() {
          super.onBackPressed();
          Intent intnt=new Intent(getApplicationContext(),ActivityA.class);
           startActivity(intnt);
      
      }
      

      请在 ActivityB 中使用此步骤将您的 AcitivityA 移回而不被杀死

      解决办法是

      @Override
      public void onBackPressed() {
          super.onBackPressed();  
      }
      

      //我将这些隐藏在ActivityB中的intent(2lines)下面,所以感谢Daemon....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-11
        • 2018-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多