我正在尝试创建一个通知,单击该通知将打开一个外部应用程序。我看过创建通知和将用户发送到另一个应用程序的文档。但是我似乎无法弄清楚如何将两者结合起来。问题是从通知启动应用程序的建议方法是创建如下待处理的意图:
Intent intent = new Intent(this, MyActivity.class);
TaskStackBuilder stackBuidler = TaskStackBuilder.create(context);
stackBuilder.addParentStack(MyActivity.class);
stackBuilder.addNextIntent(intent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
Run Code Online (Sandbox Code Playgroud)
但是要启动外部应用程序,您必须创建一个隐式意图,如下所示:
String uri = ...
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
Run Code Online (Sandbox Code Playgroud)
据我所知,有没有办法来创建这样的意图TaskStackBuilder,因为addParentStack()只需要一个Activity,一个Class,或ComponentName。
我想这个问题可以归结为...是否有可能创建一个既有待处理又有隐式的意图?
我现在唯一能想到的解决方法是在我的应用程序中创建一个活动,除了启动外部应用程序外什么也不做。
我确实尝试通过URI创建意图,然后执行以下操作,但是当您单击通知时什么也没有发生:
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Run Code Online (Sandbox Code Playgroud)