安卓锁屏通知无法在双击时打开浏览器

时间:2016-09-02 05:39:39

标签: android android-intent browser notifications lockscreen

我的应用会发送一个通知,通过点击打开带有给定网址的浏览器。实际上,包装的意图被发送到BroadcastReceiver,这个广播接收器启动浏览器。

Intent browserIntent = new Intent(Intent.ACTION_VIEW, intent.getData());
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(showTaskIntent);

下拉通知栏上的通知可以正常工作,但锁屏通知却没有。它无法在双击时打开浏览器。

从日志中,我可以看到ActivityManager收到意图,并尝试启动Broswer:

  

09-02 15:10:52.309 1536-1894 / system_process I / ActivityManager:START u0 {act = android.intent.action.VIEW dat = https://www.thesun.co.uk/ ... flg = 0x10000000 cmp = com.android来自uid 10059的.browser / .BrowserActivity}显示0

但是浏览器发生了什么

  

09-02 15:10:52.910 12131-12131 / com.android.browser我/艺术:开始阻止GC明确   09-02 15:10:52.978 12131-12131 / com.android.browser I / art:显式并发标记扫描GC释放44(1768B)AllocSpace对象,0(0B)LOS对象,15%免费,11MB / 13MB,暂停427us总计63.223ms   09-02 15:10:52.980 12131-12131 / com.android.browser我/艺术:开始阻止GC明确   09-02 15:10:53.095 12131-12131 / com.android.browser I / art:显式并发标记扫描GC释放5(160B)AllocSpace对象,0(0B)LOS对象,15%空闲,11MB / 13MB,暂停697us总计114.607ms   09-02 15:10:53.095 12131-12131 / com.android.browser我/艺术:开始阻止GC明确   09-02 15:10:53.255 12131-12131 / com.android.browser I / art:显式并发标记扫描GC释放3(96B)AllocSpace对象,0(0B)LOS对象,15%免费,11MB / 13MB,暂停42.926ms总计145.640ms

我的假设是:当时,设备仍然被锁定屏幕锁定,当ActivityManager提供启动浏览器的意图时,Android系统可能会有一些检查或机制不启动该活动。

以前有人有过这样的问题吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我认为这是Chrome中的一个错误,我已将此问题提交给Android和Chrome:

https://bugs.chromium.org/p/chromium/issues/detail?id=645848&can=4&q=&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified

https://developer.chrome.com/multidevice/android/customtabs

但是,我找到了一种解决方法:使用自定义标签而不是普通标签可以解决此问题

intent.putExtra("android.support.customtabs.extra.SESSION", context.getPackageName());
intent.putExtra("android.support.customtabs.extra.EXTRA_ENABLE_INSTANT_APPS", true);

添加以上额外内容以强制Chrome使用自定义标签。

在此处查找更多内容:{{3}}