有時候我們需要調(diào)用手機的瀏覽器,搜索過會我們一般都能找到這樣的代碼:
//從其他瀏覽器打開
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri content_url = Uri.parse(url);
intent.setData(content_url);
startActivity(intent);
但是,這樣做并不嚴謹,為什么呢?
如果沒有瀏覽器的話,會導致找不到接受這個Action的Activity,會崩潰.(不要問我為什么會有沒有瀏覽器的手機...告訴你,就是有!!!)
So,應該這么寫,注意最后一句:
startActivity(Intent.createChooser(intent, "請選擇瀏覽器"));
//從其他瀏覽器打開
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri content_url = Uri.parse(url);
intent.setData(content_url);
startActivity(Intent.createChooser(intent, "請選擇瀏覽器"));
同時,這樣也能給用戶選擇的機會,有助于提升與用戶體驗!~
如果有更好的方式,請告訴我~~
經(jīng)網(wǎng)友@dongorigin 提示,其實我們可以在startActivity之前檢查是否有能接受的activity:
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}
這樣我們的選擇就更加多了,可以在發(fā)現(xiàn)沒有能接受action的activity時候,給用戶一個提示~感謝@dongorigin
延伸閱讀
http://developer.android.com/intl/zh-cn/guide/components/intents-common.html
與我聯(lián)系,交個朋友