Intent用法总结 | 您所在的位置:网站首页 › 什么是intent? › Intent用法总结 |
隐式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 实验室设备网 版权所有 |