困扰我的Intent匹配问题——待解决
假设一个应用程序有多个Activity
MainActivity:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
SecondActivity:
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.OPENABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="audio/*" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="text/x-vCalendar" />
</intent-filter>
能否在匹配SecondActivity的同时,再启动MainActivity呢?
20160323
匹配一个action多个category和一个type是可行的 多个type是不行的 OK
那么问题变成 能否通过匹配到的一个非主入口的Activity而调用这个Activity所在应用的主入口?
已知:通过packageManager.getLaunchIntentForPackage("应用包名") 可以获取到能够启动这个应用的主入口intent对象
所以问题转变成:能否通过匹配条件获取到应用的包名
如何从intent入手呢?毕竟intent只是设置了几个属性,关键的操作还是在startActivity这个方法里面,所以查看startActivity(intent)这个方法具体实现才能找到思路!
然而发现用Eclipse查看源码时受限,不方便