在不重新启动的情况下刷新android systemui
如何在不重新启动设备的情况下在源代码中重新启动SystemUI 我正在尝试在不重新启动的情况下切换系统字体,除了SystemUI之外,一切都正常。我想立即重新启动SystemUI,而不是重新启动设备在不重新启动的情况下刷新android systemui,android,Android,如何在不重新启动设备的情况下在源代码中重新启动SystemUI 我正在尝试在不重新启动的情况下切换系统字体,除了SystemUI之外,一切都正常。我想立即重新启动SystemUI,而不是重新启动设备 谢谢~~~调用下面的方法,从您想要的地方将剩余的部分放到UI中 private void restartSelf() { AlarmManager am = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVI
谢谢~~~调用下面的方法,从您想要的地方将剩余的部分放到UI中
private void restartSelf() {
AlarmManager am = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis() + 500, // one second
PendingIntent.getActivity(getActivity(), 0, getActivity().getIntent(), PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT));
Intent i = getActivity().getBaseContext().getPackageManager().getLaunchIntentForPackage(getActivity().getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
需要根访问权限,但您可以通过以下方法重新启动系统UI:
private void restartSystemUi() {
Process process = null;
try {
process = Runtime.getRuntime().exec("su");
} catch (IOException e) {
Log.e(TAG, "Error retrieving process", e);
}
if (process != null ){
try {
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes("pkill com.android.systemui\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (Exception e) {
Log.e(TAG, "Error killing system UI", e);
}
}
}
与任何根操作一样,您的里程数可能会有所不同。如果没有root,这是不可能的,因此这(或类似的特权滥用)是您唯一的选择。将上述方法从您想要的地方调用到ui。此外,我正在修改Android源代码。重启SystemUI正常,但重启后会跳转到Keyguard。刷新systemui的视图是关键