思路捋好來,那麼就來一一實現吧。
這裡需要使用到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...