android 隐式intent
隐式intent
使用隐式intent
/** 创建隐式Intent */
var startupIntent = Intent(Intent.ACTION_MAIN) // 指定main
startupIntent.addCategory(Intent.CATEGORY_LAUNCHER) // 指定类别为launcher activity
var packageManager = this.activity?.packageManager
var activitys = packageManager?.queryIntentActivities(startupIntent, 0)
Collections.sort(activitys, object : Comparator<ResolveInfo> {
override fun compare(o1: ResolveInfo?, o2: ResolveInfo?): Int {
var pm = activity?.packageManager
return String.CASE_INSENSITIVE_ORDER.compare( // 按字典排序应用名
o1?.loadLabel(pm).toString(),
o2?.loadLabel(pm).toString()
)
}
})
开启浏览器的隐式Intent
var i = Intent(Intent.ACTION_VIEW, uri())//指定浏览器intent和uri
startActivity(i)//开启activity
显示intent
有两种方法创建intent
public Intent setClassName(String packageName,String className)
public content(Context packageContext,Class<?> cls)
使用
override fun onClick(v: View?) {
var activityInfo = mResolveInfo?.activityInfo
var i = activityInfo?.applicationInfo?.packageName?.let {
Intent(Intent.ACTION_MAIN)
.setClassName(it, activityInfo.name)//设置包名和类名
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) // 以新任务模式启动
}
startActivity(i)
}