小编Div*_*ers的帖子

应用程序被Android或任务杀手杀死后,如何保存预定的警报?

安排警报的代码.

    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)

它的工作正常,但当我在任务杀手中杀死我的应用程序时,我丢失了我的预定警报.如何解决这个问题呢?

android alarmmanager

22
推荐指数
2
解决办法
1万
查看次数

使用Espresso和RxJava测试无尽的滚动RecyclerView

我有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)

android automated-tests ui-testing rx-java android-espresso

16
推荐指数
1
解决办法
1351
查看次数

Hibernate Criteria API中的SQL'LIKE'运算符

我想用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)

java hibernate criteria hibernate-criteria sql-like

13
推荐指数
3
解决办法
3万
查看次数

Java中的非贪婪正则表达式

我有下一个代码:

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)

有人请解释我为什么这样?

java regex non-greedy

10
推荐指数
1
解决办法
3万
查看次数

有效模糊相机预览

到目前为止我尝试过的:


将每个帧转换为位图,使用将其模糊并将其放入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)

camera android blur renderscript

10
推荐指数
1
解决办法
3026
查看次数

使用org.json lib的Java对象到JSON

我有这样的课:

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对象?

java org.json

9
推荐指数
2
解决办法
2万
查看次数

如何区分在托管配置文件和常规配置文件下运行的Android应用

Android 5.0(API级别21)允许企业设置托管配置文件.如果设备具有托管配置文件,则配置文件的设置由企业管理员控制.管理员可以选择允许该配置文件使用哪些应用,并且可以控制配置文件可用的设备功能.

假设我们在Google Play Market中有一个应用程序,并且一些客户也可以通过移动设备管理配置文件安装该应用程序.如何以编程方式区分这些应用程序版本?换句话说,如何确保特定应用程序版本由企业管理员(位于工作资料下)管理?提前致谢.

android mdm

9
推荐指数
1
解决办法
845
查看次数

为什么getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 在横向模式下不起作用?

我的主要活动的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,与纵向模式相同?

android resize landscape input

6
推荐指数
1
解决办法
7016
查看次数

如何在Hibernate中避免旧式外连接(+)?

我写过像这样的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)

java hibernate hql

6
推荐指数
1
解决办法
5840
查看次数

Java对象赋值是什么意思?

我有以下两个班级:

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)

java object variable-assignment

6
推荐指数
1
解决办法
176
查看次数