Intent是一个消息传递的对象,它的主要功能是启动活动、启动服务、传递广播。Intent分为显式和隐式。
显式Intent:
Intent intent = new Intent(this,Main2Activity.class);
startActivity(intent);
隐式Intent:
Intent intent = new Intent(android.intent.action.MAIN);
intent.addCategory("android.intent.category.LAUNCHER");
startActivity(intent);
其中action只能有一个,category可以有多个或没有,隐示Intent会自动匹配同时满足action和category的Activity。在API21开始,隐示Intent启动服务将会报错,使用隐式 Intent 启动服务存在安全隐患,因为您无法确定哪些服务将响应 Intent,且用户无法看到哪些服务已启动。启动服务始终使用显示Intent。隐式Intent也可用于启动如:拨打电话,打开相机,启动浏览器等其他。
携带数据的Intent:
可以使用Intent中的方法putExtra(key,value),输入key值和需要携带的数据值传递数据,也可以使用putExtras(bundle)传递一个bundle实例。
返回活动给上一个Activity:
调用 startActivityForResult()。在 Activity 的onActivityResult() 回调中, Activity 将结果作为单独的 Intent 对象接收。