【问题标题】:Start an Activity in full cycle with out showing UI在不显示 UI 的情况下全周期启动 Activity
【发布时间】:2017-11-10 06:51:08
【问题描述】:

我有带有 UI 的 activityB,它作为常规活动工作正常,在从另一个 activityA 调用时显示 UI。现在,我想调用 activityB 并让该活动完成整个活动周期而不显示其 UI。

到目前为止我已经尝试过:

  1. 在清单中设置主题:
    android:theme = "@android:style/Theme.Translucent.NoTitleBar" />

但问题是我需要在 ActivityB 中设置内容视图(),以便可以在 ActivityB 中识别 UI 元素。这遇到了错误。

  1. 将finish() 放入activityB onCreate() 活动 B 未完成整个活动周期。它在finish()处结束。

关于如何在不显示其 UI 的情况下实现全周期启动 Activity 的任何想法。

谢谢

【问题讨论】:

  • 你能告诉我们你为什么需要这种行为吗?可能还有其他方法可以做。如果只是可见性问题,您可以隐藏所有视图,直到您准备好将其显示回来,但似乎不是实现我能想到的任何事情的正确方法。
  • @Jimmy,ActivityB 可以正常显示 UI。我想保留这个功能,也想尝试是否可以重用作为后台服务运行的 ActivityB。我认为将它们分成 2 个单独的 Activity 很容易,一个带有 UI,另一个没有 UI。谢谢你的想法。
  • 不确定我是否得到了你。只是想让你知道,如果你在 UI 线程中运行长进程(我认为是 5 秒),android 会尝试杀死它,认为它是不活动的/没有响应。为此,您可能希望在单独的线程或服务线程中运行您的进程或使用异步任务。

标签: java android android-activity


【解决方案1】:

如果应该显示 UI,我建议您通过 Intent 传递一些布尔值:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    boolean isShowUI = getIntent().getBooleanExtra(EXTRA_IS_SHOW_UI, true);

    if (isShowUI) {
        setContentView(R.layout.activity_layout);
    }

    //your onCreate logic
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    相关资源
    最近更新 更多