持续更新
- 显式调用
// 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" />
这样就可以了