0

我在以下位置注册了一项活动APPWIDGET_CONFIGURE

    <activity android:name="com.tahanot.activities.NearbyStops">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
        </intent-filter>
    </activity>

但是,此活动的行为不符合预期。它在现有堆栈内打开,当我按下后退按钮时,它会将我带到其他活动而不是关闭任务。理想情况下,我希望APPWIDGET_CONFIGURE包含FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_MULTIPLE_TASK.

是否可以在 中指定标志AndroidManifest.xml,如果没有,您会建议什么解决方法?

4

3 回答 3

1

考虑为活动元素指定launchMode 属性。

<activity android:launchMode="singleTask" android:name="com.tahanot.activities.NearbyStops">
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
    </intent-filter>
</activity>

根据官方文档

FLAG_ACTIVITY_NEW_TASK

在新任务中启动活动。如果您正在启动的 Activity 的任务已经在运行,则该任务将被带到前台并恢复其最后状态,并且该 Activity 在 onNewIntent() 中接收新意图。

这会产生与上一节中讨论的“singleTask” launchMode 值相同的行为。

既然你提到你想要FLAG_ACTIVITY_NEW_TASK行为,所以 singleTask launchMode 可能对你有用。

于 2013-04-17T13:18:34.450 回答
0

开始活动时使用此 java 代码

Intent intent = new Intent(this,
        activityname.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

在这里,您可以像这样使用您的意图对象添加标志。

您还可以添加多个标志。

于 2013-04-10T06:29:36.063 回答
0

这是我使用的清单声明,遵循 approxcom 对 android:launchMode 的想法:

<activity
    android:name="com.tahanot.activities.NearbyStops"
    android:configChanges="orientation"
    android:label="@string/title_activity_stops_nearby"
    android:launchMode="singleTop"
    android:taskAffinity="com.tahanot.tasks.widgetConfiguration" > 
    <!-- android:launchMode makes sure the Back button doesn't navigate to another NearbyStops activity. 
         android:taskAffinity makes sure the Back button doesn't navigate to some other activity. -->
    <intent-filter>
        <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE" />
    </intent-filter>
</activity>
于 2013-04-19T21:22:42.620 回答