1

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

  1. 主要活动在用户启动应用程序的地方启动。

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

我创建了我的小部件和当用户单击小部件按钮时将显示的视图。

我的问题:第二个活动UI显示在主活动上方,因为第二个活动布局是透明的,所以主活动可见,因为我想让主屏幕在小部件中单击时仍然可见。

我怎样才能只启动第二个活动而不启动它下面的主要活动?我试图<action android:name="android.intent.action.MAIN" />从清单文件中删除主要活动,小部件可以工作,但是当我在手机中安装我的应用程序时,没有安装应用程序图标,因此我无法启动主要活动。

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

4

4 回答 4

1

您必须Activity在开始第二个后立即完成第一个Activity

startActivity(<secondActivity>);
finish();
于 2013-02-18T15:36:04.077 回答
0

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

startActivity(secondActivity.class);
finish();

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

android:noHistory="true"
于 2013-02-18T15:41:31.107 回答
0

也许与第二个活动相关联的不同意图操作和意图过滤器将起作用。看看文档。记事本应用程序示例应该与想要做的类似。

于 2013-02-18T16:00:14.767 回答
0

我这样解决了我的问题:

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

android:launchMode="singleTask"

我测试了它不会使重新启动活动时的加载时间比通常更长,因为此属性不会擦除应用程序缓存并将意图实例保留在内存中。

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

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

感谢大家的帮助。

于 2013-02-18T16:18:35.867 回答