在PendingIntent中启动变量活动

时间:2013-05-07 16:25:09

标签: android android-intent google-cloud-messaging android-pendingintent

我有一个Android GCM客户端和第三方服务器。在第三方服务器端,我现在想告诉Android应用程序,在Pending Intent中启动哪个活动。有没有可能这样做?

我不能硬编码像

这样的东西
Intent notificationIntent = new Intent(context, MainActivity.class);

因为我还不知道,我想要发布哪个活动... 我试图在服务器端添加一个URI

Message msg = new Message.Builder()
            .collapseKey("push")
            .delayWhileIdle(true)
            .addData("ACTION", 
                    "de.company.myApp.Activity.class")
            .addData("MESSAGE",
                    "messageText")
            .build();

并使用

在客户端获取它
String intentUri = intent.getStringExtra("ACTION");

Intent notificationIntent = Intent.parseUri(intentUri, 0);

但它不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先将“de.company.myApp.Activity.class”更改为“de.company.myApp.Activity”,即从类名中删除.class扩展名。 然后在调用Intent时这样做..

Intent notificationIntent = new Intent(this, Class.forName(intentUri));

希望这会有所帮助..