将活动传递给服务

时间:2015-12-03 15:56:40

标签: java android android-activity android-service

需要将活动传递给服务。我正在使用

intent.putExtra("messagedialog", this.messageDialog)

传递活动。

然而,当我尝试使用

进行活动时
messageDialog = intent.getParcelableExtra("messagedialog");

返回null

我是否遗漏了什么。

1 个答案:

答案 0 :(得分:4)

  

需要将活动传递给服务

无论您认为以这种方式解决什么问题,都有更好的解决方案。您可以在an Android developer support site上发布问题,在那里您详细解释此服务和此活动应如何互动。

  

我是否遗漏了某些东西

首先,Activity不是Parcelable

其次,即使您尝试在Parcelable上实施Activity,通过Intent附加内容传递数据也不是通过引用传递,而是按值传递。您的服务将检索活动的无用分离副本,而不是(可能)正在运行的实际活动。

  

我需要显示最终开发人员可以覆盖的活动。就像他可以覆盖颜色/字体/布局

让客户端发送您的服务PendingIntent,例如通过Intent额外服务。然后,您的服务可以在需要时send() PendingIntentPendingIntent可以指向客户选择显示的活动。