【问题标题】:Android check action in intent and do some logicAndroid 检查意图中的操作并执行一些逻辑
【发布时间】:2016-07-26 09:40:13
【问题描述】:

我在一个活动中设置了两个意图过滤器。 `

        <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" />
            <data  android:scheme="https://dou.ua/lenta/" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter> `

并检查尝试检查创建活动的操作。

 protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_layout);
    ButterKnife.bind(this);
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);

    Intent intent = getIntent();
    String action = intent.getAction();
    if (action.equals("android.intent.action.VIEW ")) {

    } else {
      getSupportFragmentManager().addOnBackStackChangedListener(this);
      isDisplayingHomeBtn();
      getSupportFragmentManager().beginTransaction()
          .replace(R.id.container, new FeedFragment())
          .commit();
    }
  }

但我有一个 NullPointerException

进程:com.bogdan_kolomiets_1996.bogdan.dou_feed,PID:5237 java.lang.RuntimeException:无法启动活动 组件信息{com.bogdan_kolomiets_1996.bogdan.dou_feed/com.bogdan_kolomiets_1996.bogdan.dou_feed.ui.MainActivity}: java.lang.NullPointerException:尝试调用虚拟方法 'java.lang.Object android.os.Bundle.get(java.lang.String)' 为空 对象引用 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2622) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2692) 在 android.app.ActivityThread.access$800(ActivityThread.java:179) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1540) 在 android.os.Handler.dispatchMessage(Handler.java:111) 在 android.os.Looper.loop(Looper.java:194) 在 android.app.ActivityThread.main(ActivityThread.java:5795) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1005) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:800) 在 de.robv.android.xposed.XposedBridge.main(XposedBridge.java:114) 引起:java.lang.NullPointerException:尝试调用虚拟 方法'java.lang.Object android.os.Bundle.get(java.lang.String)' 空对象引用 在 com.bogdan_kolomiets_1996.bogdan.dou_feed.ui.MainActivity.onCreate(MainActivity.java:38) 在 android.app.Activity.performCreate(Activity.java:6071) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2575) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2692) 在 android.app.ActivityThread.access$800(ActivityThread.java:179) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1540) 在 android.os.Handler.dispatchMessage(Handler.java:111) 在 android.os.Looper.loop(Looper.java:194) 在 android.app.ActivityThread.main(ActivityThread.java:5795) 在 java.lang.reflect.Method.invoke(本机方法) 在 java.lang.reflect.Method.invoke(Method.java:372)

【问题讨论】:

    标签: android android-activity nullpointerexception intentfilter


    【解决方案1】:

    您确定您的活动放置在“com.bogdan_kolomiets_1996.bogdan.dou_feed/com.bogdan_kolomiets_1996.bogdan.dou_feed.ui.MainActivity”吗?

    此错误是在您尝试开始活动时发生的,而不是在您尝试执行操作时发生的。

    【讨论】:

    • 天啊。你说的对。这很好用,但是当我将第二个意图过滤器添加到活动位置时发生了变化。谢谢))
    • 不客气 =) 请不要忘记查看此消息作为答案)
    猜你喜欢
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2018-06-15
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    相关资源
    最近更新 更多