【问题标题】:How to check if an activity is associated with a metadata tag or not?如何检查活动是否与元数据标签相关联?
【发布时间】:2020-01-05 12:39:16
【问题描述】:

我有一个活动,它有一个与之关联的元数据标签。


        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <meta-data
                android:name="type"
                android:value="a" />
        </activity>

在我的活动的任何时间点,我都需要知道我的活动是否与“a”类型的元数据标签相关联。如何实现这一点。我尝试了类似

        Intent intent = mCurrentActivity.getIntent();
        Bundle bundle = (intent != null) ? intent.getExtras() : null;
        String value = (bundle != null) ? bundle.getString("type") : null;

但这总是返回 null 而不是 a。我在这里遗漏了什么吗?

【问题讨论】:

    标签: android bundle intentfilter android-package-managers extra


    【解决方案1】:

    使用它来获取元数据:

    ActivityInfo activityInfo = getPackageManager()
        .getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
    Bundle bundle = activityInfo.metaData;
    String value = bundle.getString("type");
    

    【讨论】:

    • 太棒了!有效 !万分感谢 ! :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-15
    • 2013-07-04
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    相关资源
    最近更新 更多