Intent的简单使用之显式和隐式

持续更新

  • 显式调用
// MainActivity.java
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
// AndroidManifest
<activity android:name=".SecondActivity"></activity>
<activity android:name=".MainActivity">
      <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>
  • 隐式调用
// MainActivity.java
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setAction("second");
startActivity(intent);
// AndroidManifest
<activity android:name=".SecondActivity">
      <intent-filter>
             <action android:name="second" />
             <!--<category android:name="" /> 故意注释这条--> 
      </intent-filter>
</activity>

这样执行会出现下面的报错信息

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.myapplication, PID: 27209
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=second }

还有堆栈信息,我就不列出来了。
只需要将上面那条注释放开并且加上对应值:

<category android:name="android.intent.category.DEFAULT" />

这样就可以了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,907评论 0 38
  • 显式Intent和隐式Intent解析 Android中的Intent分为两种类型: 显式 Intent:按名称(...
    tinyvampirepudg阅读 1,954评论 0 0
  • 庖丁解牛: okhttpclient,okhttp的工厂类,用于创建calls(用于创建请求和返回数据。) 默认构...
    miky_zheng阅读 2,433评论 0 1
  • 去年,因为朋友的介绍,加入了一个占星学的微信群,群里的老师隔周讲解十大行星落十二星座的知识。以前,我是读过几本占星...
    green66阅读 399评论 1 3