我可以在intent-filter中检测活动启动吗? Android的

时间:2017-03-02 14:27:50

标签: java android

activity android:name=".MainActivity">
        <intent-filter android:priority="999999999">
            <action android:name="com.android.settings.Settings" />
            <action android:name="android.intent.action.MAIN" />

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

这是 AndroidManifest.xml 内容 然后在 MainActivity.java

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Do some actions that will be in `onCreate()` if detect working.

1 个答案:

答案 0 :(得分:1)

  

我可以在intent-filter中检测活动启动吗?

最简单的方法是让所述过滤器触发不同的活动,在其onCreate()中将一些数据放入Bundle,然后对您的MainActivityfinish()进行链式调用(如此瞬态)一,没有UI)。然后你可以通过检查Bundle中的内容来知道(如果getExtras()返回任何内容)。

您还可以查看Intent本身的内容,但根据您的过滤器,它可能需要比先前提到的瞬态活动更多的工作。

<intent-filter android:priority="999999999">

这根本不起作用,因为android:priority值必须是大于SYSTEM_LOW_PRIORITY且小于SYSTEM_HIGH_PRIORITY的整数,这意味着-1000和{{1}之间的范围}}。忽略任何其他值,优先级将恢复为默认值1000(文档herehere)。