单击窗口小部件时如何将参数从窗口小部件传递到活动

时间:2012-03-06 13:15:40

标签: android android-widget

如何从屏幕小部件传递参数到活动?我在屏幕上有小部件和像这样的代码

            Intent defineIntent2 = new Intent(context, LOG.class);
            defineIntent2.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP);
            defineIntent2.putExtra("id", id);
            PendingIntent pendingIntent2 = PendingIntent
                    .getActivity(context, 0 /* no requestCode */,
                            defineIntent2, 0 /* no flags */);
            remoteViews
                    .setOnClickPendingIntent(R.id.widget, pendingIntent2);

但是当我点击widget并输入LOG活动并尝试读取我已通过的参数(id)

int id = getIntent().getIntExtra("id",
                -1);

我总是得到-1。如何将参数从小部件传递给活动?

1 个答案:

答案 0 :(得分:3)

Intents在Android中重复使用。如果您希望正确传递更改,可以使用FLAG_CANCEL_CURRENT FLAG:

PendingIntent pendingIntent2 = PendingIntent
                .getActivity(context, ,
                        defineIntent2, PendingIntent.FLAG_CANCEL_CURRENT);
相关问题