Android 12中的一些新特性
一、意图过滤器
文档中为 intent filters
在manifest文件的activity标签内,使用 exported 来表明是否能够被其他应用启动,设置为TRUE则可以,为FALSE则只能被本应用调用启动
<activity android:name="MainActivity" android:exported="true">
<!-- This activity is the main entry, should appear in app launcher -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="ShareActivity" android:exported="false">
<!-- This activity handles "SEND" actions with text data -->
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/plain"/>
</intent-filter>
</activity>
二、应用休眠
文档中称为Hibernation,指应用在后台一段时间之后将会进入休眠模式,缓存和权限会被重置
三、限制后台应用的前台权限
加强了对后台应用的限制,现在只有少数情况可以在后台启动前台服务,检查应用程序能否执行后台启动的方法如下:
在测试的虚拟机中输入:
adb shell device_config put activity_manager \
default_fgs_starts_restriction_notification_enabled true
四、加强对Notification的限制
在用户点击通知栏之后,应用无法在接受广播broadcast 或者通过后台service来调用startActivity()方法,如果需要拉起activity则需要创建PendingIntent将通知和之后需要调用的activity相关联。