0

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

我不能硬编码类似的东西

Intent notificationIntent = new Intent(context, MainActivity.class);

因为我还不知道,我要启动哪个 Activity... 我试图在服务器端添加一个 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);

但它不起作用。

有任何想法吗?

4

1 回答 1

0

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

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

希望这可以帮助..

于 2013-05-07T16:43:41.457 回答