我正在尝试使用onPause()方法中实现的以下BroadcastReceiver自动启动我的nightclock应用程序进行充电:
BroadcastReceiver test = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
Intent i = new Intent(context, NightClock.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
};
registerReceiver(test, new IntentFilter(Intent.ACTION_POWER_CONNECTED));
Run Code Online (Sandbox Code Playgroud)
插入USB电缆时会触发onReceive()方法,但活动无法启动.但是日志显示了这个:
I/ActivityManager( 79): Starting activity: Intent { flg=0x10000000 cmp=com.meins.nightclock/.NightClock }
Run Code Online (Sandbox Code Playgroud)
日志说活动开始的任何想法,但没有任何反应?
我收到了一些使用HTC One M8手机的用户的报告,导航按钮始终可见,即使它们应该处于低调模式.
我构建了以下示例应用程序,它的运行方式与您在模拟器和Nexus 4上的预期相同.
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.visible:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
break;
case R.id.lowProfile:
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在HTC One M8上,SYSTEM_UI_FLAG_LOW_PROFILE
标志始终被忽略,但隐藏状态栏例如(with SYSTEM_UI_FLAG_FULLSCREEN
)有效.
我已经尝试调用setSystemUiVisibility()
装饰视图如图所示和按钮没有成功.
该模型是否存在任何已知问题或变通方法?
更新:示例应用程序已在Android 5.0.1上进行了测试.我不知道它是否适用于以前的版本.
我按照数据备份中的描述实现了BackupAgent ,注册了一个API密钥并在我的Manifest中声明了BackupAgent.我认为备份部分工作得很好; 当我adb shell bmgr run
在命令行中运行时,LogCat中会出现以下输出:
01-11 22:23:09.002: DEBUG/PerformBackupThread(97): starting agent for backup of BackupRequest{app=ApplicationInfo{4547c5b8 com.meins.nightclock} full=false}
01-11 22:23:09.002: DEBUG/BackupManagerService(97): awaiting agent for ApplicationInfo{4547c5b8 com.meins.nightclock}
01-11 22:23:09.013: DEBUG/BackupManagerService(97): agentConnected pkg=com.meins.nightclock agent=android.os.BinderProxy@4536a7f8
01-11 22:23:09.032: DEBUG/BackupHelperDispatcher(9122): handling existing helper 'alarms' android.app.backup.FileBackupHelper@44e197b0
01-11 22:23:09.032: DEBUG/BackupHelperDispatcher(9122): handling existing helper 'prefs' android.app.backup.SharedPreferencesBackupHelper@44e19478
01-11 22:23:09.032: VERBOSE/LocalTransport(97): performBackup() pkg=com.meins.nightclock
01-11 22:23:09.032: VERBOSE/LocalTransport(97): Got change set key=alarms:alarms size=16 key64=YWxhcm1zOmFsYXJtcw==
01-11 22:23:09.042: VERBOSE/LocalTransport(97): data size 16
01-11 22:23:09.062: VERBOSE/LocalTransport(97): Got change set key=prefs:com.meins.nightclock_preferences size=265 key64=cHJlZnM6Y29tLm1laW5zLm5pZ2h0Y2xvY2tfcHJlZmVyZW5jZXM= …
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种方法来显示和隐藏状态栏onClickListener
,但只显示它有效.
WindowManager.LayoutParams lp = getWindow().getAttributes();
if (isStatusbarVisible)
lp.flags = LayoutParams.FLAG_FULLSCREEN;
else
lp.flags = LayoutParams.FLAG_FORCE_NOT_FULLSCREEN;
getWindow().setAttributes(lp);
isStatusbarVisible = !isStatusbarVisible;
Run Code Online (Sandbox Code Playgroud)
隐藏状态栏FLAG_FULLSCREEN
似乎只有在调用之前设置了标志时才有效setContentView()
.
还有另一种隐藏状态栏的方法吗?