[問題] 關於 Intent 不能開網頁 <已解決>

看板AndroidDev作者 (overture1928)時間13年前 (2012/11/10 21:36), 編輯推噓0(009)
留言9則, 6人參與, 最新討論串1/1
時間: Sat Nov 10 21:36:52 2012 想請問各位大大 小弟是練習按下按鈕會開啟網頁 但是都會出現「很抱歉,程式已經中止」的訊息 程式只有這樣 public void btnOn(View v){ //button的事件 Intent i=new Intent(Intent.ACTION_VIEW, Uri.parse("tw.yahoo.com")); startActivity(i); //開啟yahoo網頁 } 只要按下按鈕就會中止 一開始我以為是內建瀏覽器的安全性憑證問題 不過使用內建瀏覽器上網是可以的 用自己寫的按鈕開網頁 就會中止 各種爬文之後還是不知道錯誤在哪邊 請前輩指導了 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.55.146

11/10 21:47, , 1F
11/10 21:47, 1F

11/10 21:54, , 2F
謝謝大大 可以了~ 原來是這小細節 以後會更注意的@@
11/10 21:54, 2F
不好意思 小弟想要再追問 我想要連結網路抓取資料使用 範例使用的是這篇 http://ascc.sinica.edu.tw/iascc/articals.php?_section=2.4&_op=?articalID:4062 透過 yahoo api 取得某檔股票資訊 我把這段程式放在按鈕事件裡面 public void btnOn(View v) throws IOException { String urlConnect = "http://finance.yahoo.com/d/quotes.csv?s=2330.TW&f=snd1l1c6"; //設定 url字串,內容是取值的網址 URL url = new URL(urlConnect); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); //使用 HttpURLConnection 方法連接 if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { Toast.makeText(this, "成功!", Toast.LENGTH_SHORT).show(); }else{Toast.makeText(this, "失敗", Toast.LENGTH_SHORT).show();} //判斷是否連接, OK 回傳成功,反之 回傳失敗。 /* InputStreamReader isr = new InputStreamReader(conn.getInputStream()); BufferedReader in = new BufferedReader(isr); String line = in.readLine(); tt.setText(line); //這邊是取值,然後丟給文字欄位輸出,不過還沒做到這邊。 */ } 原本是沒有藍色這一段 throws IOException 不過系統提示之後就補上去了 也有在 Manifest 裡面 補上這兩句開權限的 <uses-permission android:name=" android.permission.INTERNET"></uses-permission> <uses-permission android:name=" android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 可是也是不能執行 並不會出現 "成功"、"失敗" 的字樣 而是直接就程式關閉了 不知道是哪邊沒有注意到呢 懇請前輩賜教了 萬事拜託~ ※ 編輯: laiair 來自: 60.244.55.146 (11/11 01:14) ※ 編輯: laiair 來自: 60.244.55.146 (11/11 01:16)

11/11 10:58, , 3F
請看log......
11/11 10:58, 3F
※ 編輯: laiair 來自: 60.244.55.146 (11/11 12:48)

11/11 12:48, , 4F
@@ 已解決了 似乎是版本問題
11/11 12:48, 4F

11/12 11:25, , 5F
網路存取不要放在UI thread做
11/12 11:25, 5F

11/12 15:32, , 6F
android在某版本(忘了)之後 網路存取不能在main thread中
11/12 15:32, 6F

11/12 15:34, , 7F
用new thread/asynctask來處理網路存取會比較適合 :)
11/12 15:34, 7F

11/13 11:52, , 8F
因為Uri.parse能parse的不止http 還有很多其他東西
11/13 11:52, 8F

11/13 11:52, , 9F
甚至連content provider都可以用它parse出來
11/13 11:52, 9F
文章代碼(AID): #1GdbXsoF (AndroidDev)