[問題] startActivity問題

看板AndroidDev作者 (凜大小姐~最高!!)時間5年前 (2018/10/01 10:26), 5年前編輯推噓2(2021)
留言23則, 6人參與, 5年前最新討論串1/1
各位大大好,小弟最近在整合Line Pay 他需要使用url來跳轉到Line的App來進行付款。 這時遇到一個奇怪的問題不知該如何解決。 按照文件收到Api回覆後有個跳轉Line的url 然後使用他文件的code來跳轉 Uri uri = Uri.parse(urlString); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 這樣的方式, 但是第一次跳轉沒問題,第二次跳轉就會沒有反應。 第三次又可以跳轉。 沒反應的那次也不會有任何錯誤訊息。 我試著打Log看activity生命週期資訊, 正常的情況是onPause之後就會跳到Line App, 然後原本的activity會進入onStop。 跳轉失敗的情況會onPause後, 直接接onResume回原來的activity。 https://i.imgur.com/noGyFmP.jpg
完全不知道從何下手, 不知道有沒有大大有什麼建議? 感謝。 -------------------------------------------------- https://github.com/ChangHungChih/LinePayEx 補上github code是在MainActivity跳轉 不過LinePay很難測試 有意願幫忙測試的大神 再來信跟我拿後台帳號,要把IP加進白名單才能用 --------------------------------------------------- https://pay.line.me/tw/developers/documentation/download/tech?locale=zh_TW 補上Line Pay的整合文件 流程是 1.呼叫reserveApi,傳給line confirmUrl,並收到回傳的paymentUrl 2.用startActivity執行paymentUrl跳轉至line app 付款頁面 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^這段出問題,使用的是文件第54頁的code 3.在line app 付款完後,line會跳轉第一點傳的confirmUrl 4.在confirmUrl中處理最後的付款確認請求回覆,完成付款流程 我在confirmUrl確認付款完後,又用startActivity跳回MainActivity 然後再進行一次上面的流程就會在第二點出現本次的問題。 我有想過問題會不會是confirmUrl的設定, 我是用scheme做了一個網址執行可以跳進來我的app 但是因為之後是跳回mainActivity執行startActivity出問題的, 感覺關聯性不高。 confirmUrl的設定如下圖 https://i.imgur.com/2wJ6NXk.jpg
傳給Line 的Url 是 lafresh://auth_activity 這邊可能是會有問題,但又看不出啥關聯。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.72.231.7 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1538360768.A.01E.html ※ 編輯: p31819 (211.72.231.7), 10/01/2018 11:23:30

10/01 12:12, 5年前 , 1F
看看失敗的時候 url 跟成功的時候 是一樣的嗎?
10/01 12:12, 1F

10/01 14:26, 5年前 , 2F
一樣的url,再startActivity一次會成功
10/01 14:26, 2F

10/01 20:08, 5年前 , 3F
那第四次第五次呢 會不會是因為他還在parse的過程中你又
10/01 20:08, 3F

10/01 20:08, 5年前 , 4F
按了按扭導致失敗
10/01 20:08, 4F

10/01 22:41, 5年前 , 5F
先看看每次launch的是不是同一個instance
10/01 22:41, 5F

10/02 09:38, 5年前 , 6F
不會是多按按鈕的失敗,因為本來是自動執行的讓他跑失敗
10/02 09:38, 6F

10/02 09:39, 5年前 , 7F
為了debug改停住自己按是為了確定是startActivity的問題
10/02 09:39, 7F

10/02 09:42, 5年前 , 8F
多按幾次沒試過,因為成功的話就會跳過去了
10/02 09:42, 8F

10/02 09:42, 5年前 , 9F
launch是不是同一個instance? 不太懂什麼問題 我用同一個
10/02 09:42, 9F

10/02 09:43, 5年前 , 10F
Url要startActivity有時失敗有時成功
10/02 09:43, 10F
※ 編輯: p31819 (211.72.231.7), 10/02/2018 09:46:49

10/02 09:47, 5年前 , 11F
小弟傳到github,還懇請大大們幫忙看有沒有啥頭緒QQ 感謝
10/02 09:47, 11F

10/02 23:41, 5年前 , 12F
換startActivityForResult()看看 還有中間再隔一個空的Activi
10/02 23:41, 12F

10/02 23:42, 5年前 , 13F
ty也可以試試 這招我解某個遙遠的奇怪bug時用過
10/02 23:42, 13F

10/03 00:46, 5年前 , 14F
第一次跳轉到第二次跳轉之間 你是點返回按鈕回到你的App
10/03 00:46, 14F

10/03 00:46, 5年前 , 15F
的嗎?
10/03 00:46, 15F
※ 編輯: p31819 (211.72.231.7), 10/03/2018 09:55:03

10/03 09:56, 5年前 , 16F
補上Line Pay文件及流程,第一次和第二次之間跳轉補在內文
10/03 09:56, 16F

10/03 09:58, 5年前 , 17F
startActivityForResult我記得就原始碼來說都會執行到這步
10/03 09:58, 17F

10/03 09:59, 5年前 , 18F
startActivity之後是會執行startActivityForResult的
10/03 09:59, 18F

10/03 10:03, 5年前 , 19F
補充這問題 1.不同手機不一定會發生 2.不同時段不一定會發
10/03 10:03, 19F

10/03 10:04, 5年前 , 20F
生。 3.和android版本似乎沒關係,同版本有的好有的發生
10/03 10:04, 20F

10/03 10:05, 5年前 , 21F
有人會懷疑是server問題,但是paymentUrl跳轉App是不透過
10/03 10:05, 21F

10/03 10:05, 5年前 , 22F
server的。所以單純是在單機上startActivity的問題
10/03 10:05, 22F

10/25 15:36, 5年前 , 23F
結果似乎是Line的問題,在更新到8.15.3版後就沒問題了...
10/25 15:36, 23F
文章代碼(AID): #1RiON00U (AndroidDev)
文章代碼(AID): #1RiON00U (AndroidDev)