所以,我正在学习教程来学习android,我有下面的代码,它在标题中给了我这个警告,并且由于某种原因该应用程序将无法运行任何帮助?
这是代码:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.learn.tam.Splash"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.SPLASH" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.learn.tam.StartingPoint"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.STARTINGPOINT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
显示错误的部分是第二个 <活动>活动>
您正在宣传设备上的任何应用程序都可以启动com.example.learn.tam.StartingPoint
,而 Lint 警告您这是不安全的。
最有可能的是,您不需要该<intent-filter>
- 您通常只需要这些用于您希望其他应用程序启动的活动。因此,消除此警告的最简单方法是删除该<intent-filter>
并在启动该活动时使用显式Intent
(例如,new Intent(this, StartingPoint.class)
(。
如果您选择保留<intent-filter>
,无论出于何种原因,请:
-
不要用
android.intent.action.
作为你自己发明的行为的前缀——想出别的东西,比如com.example.learn.tam.
-
在
<activity>
元素中添加android:exported="false"
,说尽管您有一个<intent-filter>
,您不希望其他应用程序启动您的活动