android - intent.getAction() 返回 NULL

标签 android android-intent android-manifest

在我的应用程序中,我添加了启动画面并创建了启动 Activity 并对 list 文件进行了适当的更改。但是,当我现在运行我的应用程序时,初始屏幕会显示指定的时间,然后返回 NullPointerException。问题是由

 intent.getAction()

在我的 splash 重定向到的类的第 241 行,intent.getAction() 返回 null。据我了解,操作是从指定 Activity 的 list 文件中获取的。这是正确的,不是吗?如果是这样,有人可以看看这个,看看我是否有什么问题吗?我看不出有什么不对。

 <activity android:name=".Main"
              android:label="@string/app_name">       

    </activity>

   <activity android:name=".SplashActivity" android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">

            <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.GET_CONTENT" />

            <data android:mimeType="*/*" />
            <category android:name="android.intent.category.OPENABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>

_________If 语句正在检索操作______________

 Intent intent = getIntent();

    System.out.println("Intent action is " + intent.getAction());
    if(intent.getAction().equals(Intent.ACTION_GET_CONTENT)) {
        bimg[5].setVisibility(View.GONE);
        mReturnIntent = true;
 } else if (intent.getAction().equals(ACTION_WIDGET)) {
        Log.e("MAIN", "Widget action, string = " + intent.getExtras().getString("folder"));
        mHandler.updateDirectory(mFileMag.getNextDir(intent.getExtras().getString("folder"), true));

    }
}

最佳答案

Action 是从启动 Activity 的 Intent 中获取的。 list Intent 过滤器定义除了直接指定该 Activity 作为目标的 Intent 之外,还将匹配哪些类型的 Intent 。

如果您以这样的方式开始 Activity ,则操作为 null 是完全正常的:

startActivity(new Intent(this, MyTargetActivity.class));

您没有为 Intent 指定操作,因此没有。在测试接收到的 Intent 的操作时,像这样反转检查通常很有用:

if (Intent.ACTION_GET_CONTENT.equals(intent.getAction())) {
    // ...
}

避免显式 null 检查的需要,因为常量 Intent.ACTION_GET_CONTENT 不会为 null。

(请注意,即使在这种情况下您的操作检查都不匹配,您的代码仍然必须做一些合理的事情。)

关于android - intent.getAction() 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15048883/

相关文章:

java - 在 SQLite 中查询日期的月份部分

android - 设置根据 Intent Extras 值选择的微调项

android - 使用我的 android 应用程序打开特定文件

android - 读/写可移动SD卡(android模拟器)

android - Android Gradle构建在 ':app:mergeDebugResources'上突然失败,没有错误消息

Android make 和 chown/acct/uid_10064 : Read-only file system in emulator 失败

android - 如何检测Android设备上的屏幕是否已经打开?

java - setOnEditorActionListener 不适合我

javascript - Android 平板电脑(Samsung galaxy 选项卡)- 表格在方向改变时弄乱了

android - 卡住发送某些位图到 Activity