在另一个Intent中发送Intent

Tom*_*Tom 5 serialization android android-widget android-intent

也许我会以错误的方式解决这个问题,但我想在我自己的应用程序中响应我的Android AppWidget的点击事件并启动一个Activity.当我设置PendingIntent我有另一个Intent我想要点击时启动.我onStartCommand使用这一行:

final Intent mLaunchIntent = (Intent) intent.getParcelableExtra(Widget.EXTRA_INTENT);
Run Code Online (Sandbox Code Playgroud)

当我打电话时setOnClickPendingIntent我之前有这条线:

mSendingIntent.putExtra(Widget.EXTRA_INTENT, (Parcelable) mLaunchIntent);
Run Code Online (Sandbox Code Playgroud)

因此即使两行都mLaunchIntent有效Intent,第一行也缺少大量数据.startActivity然后调用失败,因为Intent它无效.

我想知道是否有可能,以及如何IntentIntent没有严格调用的情况下发送另一个内部,putExtras因为该方法简单地将附加内容添加Intent到下一个.我想将这两个分开并且易于访问.

Tom*_*Tom 10

我实际上弄清楚了,解决方案非常简单.mLaunchIntent不应该被投射Parcelable或数据丢失.

mSendingIntent.putExtra(Intent.EXTRA_INTENT, mLaunchIntent);
Run Code Online (Sandbox Code Playgroud)

这就是我需要Intent通过另一个发送的所有内容Intent.


goe*_*mic 6

您可以通过以下方式将 Intent 置于 Intent 中:

Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_INTENT, new Intent());
Run Code Online (Sandbox Code Playgroud)

要从意图中检索意图(从活动中),您可以执行以下操作:

Intent intent = getIntent().getParcelableExtra(Intent.EXTRA_INTENT);
Run Code Online (Sandbox Code Playgroud)


Goo*_*oot 1

不能用aservice来解析Intent吗?

  • 我正在使用一个服务,但该服务是通过意图调用的,在本例中为“mSendingIntent”。我需要将“mLaunchIntent”与该 Intent 一起传递,以便单击事件随后启动活动。 (2认同)