0

我只想使用我的应用程序小部件作为应用程序的快捷方式,我不想打开新任务。所以我像这样使用了 FLAG_ACTIVITY_BROUGHT_TO_FRONT 标志:

        Intent configIntent = new Intent(context, MainActivity.class);
        configIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
        PendingIntent configPendingIntent = PendingIntent.getActivity(
                context, 0, configIntent, 0);
        views.setOnClickPendingIntent(R.id.widget, configPendingIntent);

但不幸的是,每次我点击小部件时,都会启动一个新活动。

我错过了什么吗?

编辑:我也试过:FLAG_ACTIVITY_REORDER_TO_FRONT

4

2 回答 2

2

除了我评论的内容:

configIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    <activity
        android:name="com.source.myApp"
        android:launchMode="singleTop" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

如果它已声明其启动模式为“多重”(默认)并且您没有在同一意图中设置 FLAG_ACTIVITY_SINGLE_TOP,那么它将完成并重新创建;对于所有其他启动模式,或者如果设置了 FLAG_ACTIVITY_SINGLE_TOP,则此 Intent 将被传递到当前实例的 onNewIntent()。

API 参考

于 2013-05-28T11:34:21.647 回答
0

我尝试的每个标签都失败了......

我不得不使用android:launchMode="singleInstance"使小部件以与用户离开它时相同的状态启动我的 Activity。

于 2013-05-28T11:22:00.320 回答