0

我正在创建一个 Android 小部件。我的小部件有一个视图,单击它会打开一个Activity看起来像Dialog.

我已经更新AndroidManifest.xml了这个活动的样式,就像一个对话框。

<activity 
    android:name=".Widget.Widget_OeffneDialog" 
    android:theme="@android:style/Theme.Dialog">
</activity>

这太棒了。

现在我从这个小部件打开应用程序并单击主页按钮(应用程序现在在后台),然后单击对话框显示的 wdget - 但应用程序的其余部分显示在对话框后面。

像这儿: 在此处输入图像描述

我不想在对话框活动下方看到上一个活动 - 我该怎么做?

4

2 回答 2

5

当您从启动器启动 Widget_OeffneDialog 活动时,Android 只是恢复当前在后台的实例 - 以及它包含的任何 backstack 和历史记录。

尝试强制您的小部件启动活动的新实例。

Intent intent = new Intent(this, A.class);
intent.setFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
于 2013-02-06T22:00:37.780 回答
0

为此使用 Theme.Translucent。半透明主题不会使背景中的应用程序/视图变暗。请注意,半透明主题不使用动画,因此您可能需要更改它。这是来自 Android 源代码的主题 XML:

 <style name="Theme.Translucent">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <!-- Note that we use the base animation style here (that is no
         animations) because we really have no idea how this kind of
         activity will be used. -->
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
</style>
于 2013-02-06T18:42:33.847 回答