admin 管理员组文章数量: 887017
Intent简介
使用Intent
可以在Android的各个组件之间交互,如启动Activity, 启动Service,发送广播等。Intent不仅可以指定当前组件想要执行的动作,还可以在不同组件之间传递数据。
显式Intent:直接指明跳转到哪个Activity。Intent的构造函数接收两个参数,分别是Context和Activicy::java.class。
隐式Intent:指定Intent的Action和和Category。Intent的构造函数接收一个参数,就是Action。AndroidManiFest中通过 < intent-filter > 标签指定自己能够响应的intent。一个intent只能有一个Action,但是可以有多个Category。
启动系统浏览器
使用Intent启动系统浏览器属于隐式的一种用法。直接上代码。
布局文件:仅仅放了一个Button,用于启动浏览器。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btn_open_browser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打开百度"/>
</LinearLayout>
代码文件
使用Intent打开网址。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn_open_browser.setOnClickListener {
//构造函数中指定ACTION是Intent.ACTION_VIEW,即用于打开浏览器
val intent = Intent(Intent.ACTION_VIEW)
//指定要打开的网址
intent.data = Uri.parse("https://www.baidu")
startActivity(intent)
}
}
}
事实上,我们也可以自己定义一个可以响应打开网页的Activity。
新建一个Activity,在AndroidManifest中修改其注册信息。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android/apk/res/android"
xmlns:tools="http://schemas.android/tools"
package="com.example.intenttest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity2">
<!--忽略警告-->
<intent-filter tools:ignore = "APPLinkUrlError">
<!--指定ACTION-->
<action android:name="android.intent.action.VIEW"/>
<!--指定Category-->
<category android:name="android.intent.category.DEFAULT"/>
<data android:scheme="https"/>
</intent-filter>
</activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
实际开发中应该尽量避免响应自己实际无法实现的功能,毕竟用户体验太差了。
版权声明:本文标题:Android实战:使用隐式Intent打开系统浏览器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726854010h1039992.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论