Android的Intent理解和如何打开所有类型的文件

本文记录了作者对Android中Intent的理解,特别是在使用Intent打开不同类型文件的应用场景。作者通过学习和实践,意识到在开发资源管理器时,正确使用Intent来启动相应程序打开文件的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

这篇文章纯粹个人理解,作为学习笔记。如有不足或者错误的地方,敬请谅解。如有指出,本人十分感谢并乐意虚心学习。

上次做了一个资源管理器,发现自己对寻找对应程序打开文件这方面有好多缺陷。

经过一番研究才略懂一二,所以写下这篇笔记加深认识,以下是个人的一些笔记。

要打开文件,就要利用 Intent 这个类,再加上文件的Uri 和 MIME Type去寻找对应的程序打开。

那么Intent这个类是什么?怎么使用?

Intent是什么我就不做介绍了。以下是我对Intent使用的一些代码
显式Intent:带有包名和componet的都属于显式,都指名道姓了呲牙 
 
//Intent
//
Intent intent  =  new Intent(MainActivity. this, SecondActivity. class);
Intent intent  =  new Intent( "com.example.administrator.ACTION_START"null
                                    MainActivity. this, SecondActivity. class);
Intent intent  =  new Intent();
// Intent 
     //setClass
    intent.setClass(MainActivity. this, SecondActivity. class);
    
     //setClassName
    intent.setClassName(MainActivity. this,
                                 "com.example.administrator.intentexplorer.SecondActivity");
                                
    intent.setClassName( "com.example.administrator.intentexplorer"
                                 "com.example.administrator.intentexplorer.SecondActivity");
                                
     //setComponent
    ComponentName cn  =  new ComponentName(MainActivity. this, SecondActivity. class);
    ComponentName cn  =  new ComponentName(MainActivity. this,
                                 "com.example.administrator.intentexplorer.SecondActivity");
    ComponentName cn  =  new ComponentName( "com.example.administrator.intentexplorer"
                                 "com.example.administrator.intentexplorer.SecondActivity");
    intent.setComponent(cn); 
 
隐式Intent:没有指出组件或者包名等明确名称的就是隐式
 
//Intent
//
Intent intent  =  new Intent();
    intent.setAction( "com.example.administrator.ACTION_START");
    intent.addCategory( "com.example.administrator.MY_CATEGORY");
 
那么这里设置了 setAction和addCategory 到底是打开哪个Activity?
我们看看Manifest.xml
 
.........
     <activity
        android:name = ".SecondActivity"
        android:label = "@string/title_activity_second" >
         <intent -filter >
             <action android:name = "com.example.administrator.ACTION_START" / >
             <category android:name = "android.intent.category.DEFAULT" / >
         </intent -filter >
     </activity >
     <activity
        android:name = ".ThridActivity"
        android:configChanges = "orientation|keyboardHidden|screenSize"
        android:label = "@string/title_activity_thrid"
        android:theme = "@style/FullscreenTheme" >
         <intent -filter >
             <action android:name = "com.example.administrator.ACTION_START" / >
             <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值