hy *_* fa 9 android android-alertdialog
嗨:我很好奇如何显示此对话框。当我按允许时,此应用程序的电池优化功能被禁用。这是一个新的Android API
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
Intent intent = new Intent();
intent.setAction(android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("package:" + packageName));
context.startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
另外,您需要在清单中添加以下权限
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
Run Code Online (Sandbox Code Playgroud)
这是API 23 (Marshmallow) 与Doze Battery Optimization一起引入的新应用程序待机功能的一部分,旨在优化应用程序处于后台(应用程序待机)或设备长时间处于睡眠状态(Doze)时的电源和资源使用情况。
具体来说,在App Standby模式下,当用户没有主动使用某个应用程序时,系统会判定该应用程序处于空闲状态。当用户在一段时间内没有触摸应用程序并且以下条件都不适用时,系统会做出此决定:
当用户将设备插入电源时,系统将应用程序从待机状态释放,允许它们自由访问网络并执行任何挂起的作业和同步。如果设备长时间闲置,系统会允许闲置应用程序每天访问一次网络。
因此,这意味着从 API 23 (Marshmallow) 开始,设备可能会主动让您的应用程序处于待机状态,阻止网络访问(例如同步等任务)并限制(或禁用)后台执行。现在,对于大多数应用程序来说,这种行为很好,或者您可以轻松地针对此类行为进行优化,但对于某些应用程序来说,这可能会导致一些意外行为,特别是对于优化不佳或使用非标准同步策略或某些应用程序来说。后台同步/执行的其他方式。因此,为了避免这种情况,用户可以明确地将应用程序标记为未优化,系统将回退并且不会将应用程序置于待机状态,尽管这会导致较差的用户体验,并且您不应该对常规应用程序执行此操作,因为这些应用程序可能会优化。
归档时间: |
|
查看次数: |
20802 次 |
最近记录: |