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