Android:正确的intent-filter表明我的应用程序可以打开文件类型?

时间:2011-02-16 16:47:20

标签: android android-manifest android-intent

我正在尝试配置清单文件以指示我的应用程序可以打开PDF文件。以下配置有效,但它为模拟器提供了一些有趣的行为:

  1. 当存在“view”操作时,我的应用程序不会在安装时启动(当我从Eclipse运行时,应用程序安装在模拟器上,但它不会自动启动)。
  2. application/pdf存在时,从eclipse运行后,应用程序不会显示在我的模拟器的应用程序菜单中。
  3. (如果我的唯一意图是“主要”和“发射器”,我没有看到这些问题中的任何一个)

     <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
         <data android:mimeType="application/pdf" /> 
     </intent-filter>
    

    编辑:好的,我对意图有点困惑。我上面的问题的解决方案是有2个不同的intent-filter,如下所示。

    但是,我确实有第二个问题。 Android成功启动了我的PDF文件应用,但是当它启动时onCreate(bundle)被调用而不是startActivity(Intent)。我该如何获得意图数据?

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="application/pdf" /> 
    </intent-filter>
    

2 个答案:

答案 0 :(得分:3)

在您的活动中,您可以使用getIntent()来获取用于启动它的意图。

答案 1 :(得分:0)

startIntent()不是回调。它是调用以启动另一个意图的方法。

启动您的活动后,您将收到被调用的onStart()(以及之前的onCreate),并从那里致电getIntent()以重新