如何启动android活动而不显示后面的主要活动

时间:2013-02-18 15:33:01

标签: android android-activity stack

我正在开发一个包含2个活动的应用程序:

  1. 用户启动应用程序时启动了主要活动。

  2. 启动第二个活动,用户点击按钮小部件 在主屏幕上。

  3. 我创建了我的小部件以及当用户点击小部件按钮时将显示的视图。

    我的问题:第二个活动用户界面显示在主要活动上方,主要活动可见,因为第二个活动布局是透明的,因为我想在点击时让主屏幕仍然可见在小部件中。

    如何在不启动下面的主要活动的情况下仅启动第二个活动?我尝试从清单文件中删除主活动中的<action android:name="android.intent.action.MAIN" />,窗口小部件可以正常工作,但是当我在手机中安装我的应用程序时,没有安装应用程序图标,因此我无法启动主要活动。

    我希望我已经表达了我的问题。

4 个答案:

答案 0 :(得分:1)

您必须在开始第二个Activity

后立即完成第一个Activity
startActivity(<secondActivity>);
finish();

答案 1 :(得分:0)

您可以在开始第二项活动后完成主要活动:

startActivity(secondActivity.class);
finish();

或者在您的应用程序清单中,您可以在主活动上使用noHistory标志,因此当您离开它时它会调用自己完成。

android:noHistory="true"

答案 2 :(得分:0)

也许使用与第二个活动相关联的不同意图操作和意图过滤器。看看documentation。记事本应用程序示例应与需要执行的操作类似。

答案 3 :(得分:0)

我解决了这个问题:

1-我添加到清单文件中的主要活动属性:

android:launchMode="singleTask"

我测试它不会使重新启动活动的加载时间超过通常因为此属性不会擦除应用程序缓存并将目标实例保留在内存中。

2-将此添加到主要活动类:

@Override
void onPause()
    {
    super.onPause();
    finish();
    }

谢谢大家的帮助。