Android 外部喚起應用跳轉指定頁面

2021-09-11 21:10:30 字數 2649 閱讀 7307

思路捋好來,那麼就來一一實現吧。

這裡需要使用到android activity中的,現在可以建立乙個解析跳轉的activity,名字隨便取了,然後需要在 manifest 檔案中配置具體的

複製**

如上配置,現在這個activity就具備外部喚醒的能力了,注意下中的相關配置,如上配置,外部的鏈結形式應該就是這樣的了:test:裡面還可以定義其他內容,這裡就不展開說了。

所以這裡就看你的適配情況了。接下來看看這個taskstackbuilder的使用,其實並不難,抄抄就會了。哈哈。詳細的參照 官方文件 只是這裡說的是pendingintent的開啟方式,我們這裡其實是直接startactivity()的方法,這個要怎麼操作呢?

taskstackbuilder stackbuilder = taskstackbuilder.create(this);

stackbuilder.addparentstack(resultintent.getcomponent());

stackbuilder.addnextintent(resultintent);

stackbuilder.startactivities();

複製**

其實我一開始是不知道直接開啟activity需要怎麼操作,因為抄的那裡沒有這麼寫,沒有抄的就自己去看看方法咯。一開始我是看到了stackbuilder.getintents()的方法,然後機智的我趕緊試了下,呼叫context.startactivities()果然有效果,後面才發現人家 builder 直接就有開啟activity的方法,沒錯就是上面的寫法。

等等,builder怎麼被我寫成這樣了?這不是在侮辱builder模式嗎?

taskstackbuilder.create(this)

.addparentstack(resultintent.getcomponent())

.addnextintent(resultintent)

.startactivities();

複製**

public void startactivities(bundle options) 

intent intents = mintents.toarray(new intent[mintents.size()]);

intents[0] = new intent(intents[0]).addflags(intent.flag_activity_new_task |

intentcompat.flag_activity_clear_task |

intentcompat.flag_activity_task_on_home);

if (!contextcompat.startactivities(msourcecontext, intents, options))

}複製**

if (viewutils.islaunchedactivity(this, homeactivity.class))  else 

public static boolean islaunchedactivity(@nonnull context context, class<?> clazz) }}

return flag;

}複製**

這個其實就是啟動模式的問題,c 已經開啟,又一次開啟,如果是正經的啟動模式,這裡肯定重複出現多個 c 頁面的,所以呢,設定乙個 singletop 就是可以解決問題的。當然,如果設定了該模式,你需要去處理onnewintent()的方法了。

引數這一塊看自己怎麼定義的,比如說我定義的就是test:

uri data = getintent().getdata();

string host = data.gethost();

string path = data.getpath();

string id = data.getqueryparameter("id")

string scheme = data.getscheme();

log.i(tag, "host: " + host);

log.i(tag, "path: " + path);//c

log.i(tag, "scheme: " + scheme);//test

log.i(tag, "id: " + id);//'10086'

複製**

上面的思路不侷限於scheme跳轉應用的使用,notification的方式也是一樣的。另外startactivities()的姿勢是不是很帥?

ps:沒事就多看看官方文件吧,很多都已經漢化了。

-2017 12 28 更新-

Android 外部喚起應用跳轉指定頁面

lovejjfg 關注 2017.08.12 16 37 字數 1561 閱讀 5365 喜歡 50 思路捋好來,那麼就來一一實現吧。這裡需要使用到android activity中的,現在可以建立乙個解析跳轉的activity,名字隨便取了,然後需要在 manifest 檔案中配置具體的。andr...

Android喚起後台應用到前台

場景 當應用隱藏在後台而沒有關閉,通過本身的懸浮窗體來喚起。方法 通過activitymanager獲取runningtasks,獲取應用對應的task,再通過activitymanager的movetasktofront 方法來把應用喚起到前台。判斷應用是否已經在前台了 public boolea...

Android 跳轉應用市場評分

跳轉應用市場評分 author lucasey public class scoreutils catch exception e if textutils.isempty pkgname pkgs.add pkgname return pkgs 過濾出已經安裝的包名集合 param context...