安排警报的代码.
PendingIntent sender = PendingIntent.getBroadcast(this, id, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, time, sender);
Run Code Online (Sandbox Code Playgroud)
它的工作正常,但当我在任务杀手中杀死我的应用程序时,我丢失了我的预定警报.如何解决这个问题呢?
我有RecyclerView无尽的滚动.因此,当用户到达last - 2列表中的位置时,我呼叫服务器以获取更多数据,并且在通话过程中,我再添加一个项目 - 进度一项.
现在,我正在尝试使用Espresso编写体面的UI测试,它将检查无限滚动当前是否正在工作:
@Test
public void checkIfProgressShown() {
InstaFeed feed = TestDataFactory.makeInstaFeed(20);
InstaFeed oldFeed = TestDataFactory.makeInstaFeed(20);
when(mockDataManager.getFeedItemsFromServer()).thenReturn(Observable.just(feed.getInstaItems()));
when(mockDataManager.getOldFeedItemsFromServer()).thenReturn(Observable.just(oldFeed.getInstaItems())
.delay(2, TimeUnit.SECONDS));
instaActivityActivityTestRule.launchActivity(null);
int position = 0;
for (InstaItem item : feed.getInstaItems()) {
onView(withId(R.id.recycler_view))
.perform(RecyclerViewActions.scrollToPosition(position));
onView(withText(item.getLocation().getName()))
.check(matches(isDisplayed())); // Line of crash
position++;
}
onView(withId(R.id.progress))
.check(matches(isDisplayed()));
}
Run Code Online (Sandbox Code Playgroud)
所以基本上说,我试图延迟Observable的响应,显示新的一批项目,以便Espresso可以向下滚动到最后一项并使我的progress项目可见.问题在于测试只是堆栈,从UI的角度来看它看起来像:
不要混淆,这里没有进度条 - 在设备上禁用动画,所以没关系.最后,小项是有进展的项目
60秒后它崩溃了 -
android.support.test.espresso.AppNotIdleException: Looped for 3019 iterations over 60 SECONDS. The following Idle Conditions failed .
at dalvik.system.VMStack.getThreadStackTrace(Native Method)
at java.lang.Thread.getStackTrace(Thread.java:580)
at android.support.test.espresso.base.DefaultFailureHandler.getUserFriendlyError(DefaultFailureHandler.java:82) …Run Code Online (Sandbox Code Playgroud) 我想用Hibernate实现一些通用过滤器Criteria.它应该像LIKESQL中的运算符一样工作:
SELECT * FROM table WHERE table.ANYCOLOUMNHERE LIKE '%'||anyvaluehere||'%'
Run Code Online (Sandbox Code Playgroud)
我Map<String, String>这里的关键是列名,价值是它的价值.
我试过这样的事情:
for (Entry<String, String> filter : filters.entrySet()) {
crit.add(Restrictions.ilike(filter.getKey(), filter.getValue(), MatchMode.ANYWHERE));
}
Run Code Online (Sandbox Code Playgroud)
但是当字段类型不是String时,它会导致 java.lang.ClassCastException:
[com.nsn.util.LoggerUtilerror] (http-localhost-127.0.0.1-8080-1) Error while getting alarms: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
at org.hibernate.type.descriptor.java.LongTypeDescriptor.unwrap(LongTypeDescriptor.java:36) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.type.descriptor.sql.BigIntTypeDescriptor$1.doBind(BigIntTypeDescriptor.java:57) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:92) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:305) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:300) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1891) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1862) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1737) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.loader.Loader.doQuery(Loader.java:828) [hibernate-core-4.1.1.Final.jar:4.1.1.Final]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289) …Run Code Online (Sandbox Code Playgroud) 我有下一个代码:
public static void createTokens(){
String test = "test is a word word word word big small";
Matcher mtch = Pattern.compile("test is a (\\s*.+?\\s*) word (\\s*.+?\\s*)").matcher(test);
while (mtch.find()){
for (int i = 1; i <= mtch.groupCount(); i++){
System.out.println(mtch.group(i));
}
}
}
Run Code Online (Sandbox Code Playgroud)
并有下一个输出:
word
w
Run Code Online (Sandbox Code Playgroud)
但在我看来,它一定是:
word
word
Run Code Online (Sandbox Code Playgroud)
有人请解释我为什么这样?
到目前为止我尝试过的:
将每个帧转换为位图,使用库将其模糊并将其放入ImageView相机预览前面.显然太慢了 - 比如1 fps.
然后我开始使用RenderScript,它会模糊每一帧,处理结果应放在TextureView封面相机预览中.
该方法的基本代码和平:
使用BlurFilter
ScriptIntrinsicBlur.create(rs, Element.RGBA_8888(rs)).apply {
setRadius(BLUR_RADIUS)
}
private val yuvToRgb = ScriptIntrinsicYuvToRGB.create(rs, Element.RGBA_8888(rs))
private var surface: SurfaceTexture? = null
private fun setupSurface() {
if (surface != null) {
aBlurOut?.surface = Surface(surface)
}
}
fun reset(width: Int, height: Int) {
aBlurOut?.destroy()
this.width = width
this.height = height
val tbConvIn = Type.Builder(rs, Element.U8(rs))
.setX(width)
.setY(height)
.setYuvFormat(android.graphics.ImageFormat.NV21)
aConvIn = Allocation.createTyped(rs, tbConvIn.create(), Allocation.USAGE_SCRIPT)
val tbConvOut = Type.Builder(rs, Element.RGBA_8888(rs)) …Run Code Online (Sandbox Code Playgroud) 我有这样的课:
public class Class1 {
private String result;
private String ip;
private ArrayList<Class2> alarm;
}
Run Code Online (Sandbox Code Playgroud)
警报它的类是这样的:
public class Class2 {
private String bla;
private String bla1;
}
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法将orl.json的Class1实例转换为JSON对象?
Android 5.0(API级别21)允许企业设置托管配置文件.如果设备具有托管配置文件,则配置文件的设置由企业管理员控制.管理员可以选择允许该配置文件使用哪些应用,并且可以控制配置文件可用的设备功能.
假设我们在Google Play Market中有一个应用程序,并且一些客户也可以通过移动设备管理配置文件安装该应用程序.如何以编程方式区分这些应用程序版本?换句话说,如何确保特定应用程序版本由企业管理员(位于工作资料下)管理?提前致谢.
我的主要活动的onCreate中有以下代码:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)
我在layout-land/main.xml中有以下代码
<EditText android:imeOptions="flagNoExtractUi</EditText>
Run Code Online (Sandbox Code Playgroud)
为什么softinput叠加在UI之上,但在横向模式下不会改变其大小?
如何使用softinput创建具有横向模式的UI,与纵向模式相同?
我写过像这样的HQL查询:
SELECT a FROM A a LEFT JOIN a.b where ...
Run Code Online (Sandbox Code Playgroud)
Hibernate生成如下的sql查询:
SELECT a FROM A a LEFT JOIN a.b where a.b_id = b.id(+)
Run Code Online (Sandbox Code Playgroud)
但是当我写这样的东西时:
SELECT a FROM where a.b.id > 5
Run Code Online (Sandbox Code Playgroud)
它生成SQL:
SELECT a.* FROM A b cross join B b where b.id > 5
Run Code Online (Sandbox Code Playgroud)
因此,当我结合这些方法时,我收到Oracle错误:
SQL Error: 25156, SQLState: 99999
ORA-25156: old style outer join (+) cannot be used with ANSI joins
Run Code Online (Sandbox Code Playgroud)
那么有没有办法说Hibernate我只想收到一种类型的查询(旧样式或新样式)?
更新: 通过组合,我的意思是HQL查询,如下所示:
SELECT alarm FROM Alarm as a LEFT JOIN alarm.madeBy as user where user.name …Run Code Online (Sandbox Code Playgroud) 我有以下两个班级:
class Animal {
public static void staticMethod(int i) {
System.out.println("Animal : static -- " + i);
}
public void instanceMethod(int i) {
System.out.println("Animal : instance -- " + i);
}
}
class Cat extends Animal {
public static void staticMethod(int i) {
System.out.println("Cat : static -- " + i);
}
public void instanceMethod(int i) {
System.out.println("Cat : instance -- " + i);
}
public static void main(String[] args) {
Cat myCat = new Cat();
myCat.staticMethod(1); // Cat : static …Run Code Online (Sandbox Code Playgroud) android ×5
java ×5
hibernate ×2
alarmmanager ×1
blur ×1
camera ×1
criteria ×1
hql ×1
input ×1
landscape ×1
mdm ×1
non-greedy ×1
object ×1
org.json ×1
regex ×1
renderscript ×1
resize ×1
rx-java ×1
sql-like ×1
ui-testing ×1