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

2021-08-20 13:32:50 字數 2955 閱讀 5546

lovejjfg 

關注 2017.08.12 16:37*

字數 1561

閱讀 5365

喜歡 50

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

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

android:scheme="test"

android:host="lovejjfg.com"

/>

android:name="android.intent.action.view"/>

android:name="android.intent.category.default"/>

android:name="android.intent.category.browsable"/>

intent-filter>

如上配置,現在這個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()的姿勢是不是很帥?

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

思路捋好來,那麼就來一一實現吧。這裡需要使用到android activity中的,現在可以建立乙個解析跳轉的activity,名字隨便取了,然後需要在 manifest 檔案中配置具體的。複製 如上配置,現在這個activity就具備外部喚醒的能力了,注意下中的相關配置,如上配置,外部的鏈結形式應...

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...