【发布时间】:2017-01-10 03:12:18
【问题描述】:
我的应用会发出通知,点击时会打开带有给定 URL 的浏览器。实际上,封装后的 Intent 被发送到一个 BroadcastReceiver,这个广播接收器启动 Browser。
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.browser /.BrowserActivity} 来自 uid 10059 显示 0
但是浏览器发生了什么
09-02 15:10:52.910 12131-12131/com.android.browser I/art: 显式启动阻塞 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 I/art:启动阻塞 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 I/art:启动阻塞 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传递启动Browser的intent时,Android系统可能有一些检查或机制不启动该Activity。
以前有人遇到过这样的问题吗?谢谢!
【问题讨论】:
标签: android android-intent browser notifications lockscreen