所以,我正在阅读教程以学习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>
显示错误的部分是秒 &LT;活动
答案 0 :(得分:3)
您宣传设备上的所有应用都可以启动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.
将android:exported="false"
添加到<activity>
元素即可,尽管您拥有<intent-filter>
,但您不希望其他应用程序启动您的活动