显式Intent
findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(MainActivity.this,MyAty.class));//显式Intent
//直接通过.class调用,为显式Intent
隐式Intent
startActivity(new Intent(MyAty.ACTION));//隐式Intent
MyAty:
public class MyAty extends Activity {
public static final String ACTION="com.example.nick.learnintent.intent.action.Myaty";
在mainfests文件夹下AndroidMainfest.xml:
<activity
android:name=".MyAty"
android:exported="false">
//false表示不允许其他应用访问
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="com.example.nick.learnintent.intent.action.Myaty" />
</intent-filter>
</activity>
通过Action方法,可以在项目中调用其他项目的Action:
如在其他项目中输入:
public void onClick(View v) {
try {//捕捉错误信息
startActivity(new Intent("com.example.nick.learnintent.intent.action.Myaty"));//访问另一个APP的页面
}catch ( Exception e){
Toast.makeText(MainActivity.this,"无法启动指定的ACT",Toast.LENGTH_SHORT).show();//错误信息显示
}
}
本文深入探讨了Android开发中显式Intent与隐式Intent的区别及应用。显式Intent直接通过类名调用,而隐式Intent则通过Action进行调用,允许跨应用通信。文章详细介绍了如何在AndroidManifest.xml中配置IntentFilter来支持隐式Intent,并展示了如何在代码中使用这两种Intent。
1375

被折叠的 条评论
为什么被折叠?



