Intent用法总结 您所在的位置:网站首页 什么是intent? Intent用法总结

Intent用法总结

2024-06-16 15:30| 来源: 网络整理| 查看: 265

隐式Intent

隐式,不明确指定启动哪个Activity,而是设置Action、Data、Category,让系统来筛选出合适的Activity。筛选是根据所有的来筛选。

下面以Action为例: AndroidManifest.xml文件中,首先被调用的Activity要有一个带有并且包含的Activity,设定它能处理的Intent,并且category设为"android.intent.category.DEFAULT"。action的name是一个字符串,可以自定义,例如这里设成为"mark":

然后,在MainActivity,才可以通过这个action name找到上面的Activity。下面两种方式分别通过setAction和构造方法方法设置Action,两种方式效果相同。 1)setAction 方法

Intent intent = new Intent(); intent.setAction("mark"); startActivity(intent);

2)构造方法直接设置 Action

Intent intent = new Intent("mark"); startActivity(intent);

为了防止应用程序之间互相影响,一般命名方式是包名+Action名,例如这里命名"mark"就很不合理了,就应该改成"com.example.app.Test"。

隐式启动的实例

在intentfilterdemo项目中进行定义一个布局文件,布局文件中有两个按钮

在MainActivity中获取两个按钮,并进行隐式启动

package com.tinno.intentfilterdemo; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void onClick(View view){ switch (view.getId()){ case R.id.button01: //点击按钮以隐式启动方式启动 Intent intent = new Intent(); intent.setAction("com.yztc.action"); //intent.setData(Uri.parse("yztc://com:90/res")); //intent.setDataAndType(Uri.parse("yztc://com:90/res"),"text/**"); startActivity(intent); break; case R.id.button02: //启动其他项目的Activity Intent intent1 = new Intent(); intent1.setAction("com.yztc.intent"); startActivity(intent1); break; } } }

button01是本项目的隐式启动,在AndroidManifest.xml中对OtherActivity进行配置

button02是启动另一个项目的 Activity,在另一个项目 intentdemo 的AndroidManifest.xml进行ResultActivity配置



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有