我希望能够创建一个始终位于Android显示屏前面的Activity.它应该不会收到任何输入,只需将其传递给下面的任何应用程序.像HUD一样的东西.
我能够研究我需要将底层窗口类型设置为TYPE_SYSTEM_ALERT,但看起来Android忽略了我的代码 - 即使我从清单中删除了android.permission.SYSTEM_ALERT_WINDOW权限也没有异常抛出.(需要使用此窗口类型).当我尝试在对话框上使用ALERT类型时,它工作正常,但我无法将对话框设置为全屏透明实体.这是我的代码,也许有一些简单的遗漏.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
getWindow().setBackgroundDrawableResource(android.R.color.transparent);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)
必须在xml清单中外部启用半透明设置,否则它也不起作用.
<item name="android:windowIsTranslucent">true</item>
Run Code Online (Sandbox Code Playgroud) 我已经使用ORMLite成功创建了表,看起来它正确地将uuid列添加为主键,索引等.
public class Stat {
@DatabaseField(id = true)
protected UUID uuid = UUID.randomUUID();
...
Run Code Online (Sandbox Code Playgroud)
现在,我希望能够使用提供的DAO的全部功能并执行(Stat是我的类要保持,getUUID()返回UUID):
Stat statClassInstance = new Stat();
RuntimeExceptionDao<Stat, Integer> statDao = getHelper().getStatDataDao();
statDao.deleteById(statClassInstance.getUUID());
Run Code Online (Sandbox Code Playgroud)
编译器给我一个错误:
The method deleteById(Integer) in the type RuntimeExceptionDao<Stat,Integer> is not applicable for the arguments (UUID)
Run Code Online (Sandbox Code Playgroud)
我缺少的是如何在接受整数的deleteById等方法中使用UUID ID.我已经读过UUID作为ID被合并到ORMLite中,但没有提到它是否只是使它们成为主键,而不支持所有这些辅助方法(queryForId,deleteIds)等.