小编Dha*_*nki的帖子

如何避免使用Hibernate HQL结果的类型安全警告?

例如,我有这样的查询:

Query q = sess.createQuery("from Cat cat");
List cats = q.list();
Run Code Online (Sandbox Code Playgroud)

如果我尝试做这样的事情,它将显示警告"类型安全:类型列表的表达式需要未经检查的转换以符合列表":

Type safety: The expression of type List needs unchecked conversion to conform to List<Cat>


List<Cat> cats = q.list();
Run Code Online (Sandbox Code Playgroud)

有没有办法避免它?

java generics

101
推荐指数
6
解决办法
7万
查看次数

Android WorkManager中的异步工作者

谷歌最近宣布了新的WorkManager架构组件.通过WorkManagerdoWork()课堂上实现,可以很容易地安排同步工作,但是如果我想在后台进行一些异步工作呢?例如,我想使用Retrofit进行网络服务调用.我知道我可以发出同步网络请求,但它会阻塞线程并且感觉不对.有没有解决方案,或者目前还不支持?

android android-architecture-components android-workmanager

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

在Android中使用JobScheduler安排作业

我在新的Android API 21中使用JobScheduler的作业计划有问题.这是我用60秒间隔调度作业的代码,如下所示:

ComponentName serviceName = new ComponentName(this, MyJobService.class);
JobInfo jobInfo = new JobInfo.Builder(0, serviceName)
        .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
        .setPeriodic(60000)
        .build();
Run Code Online (Sandbox Code Playgroud)

我的JobService只在Logcat中打印运行时,但是日志显示服务在这个时刻运行:

03-18 08:37:26.334: I/JOB(32662): Wed Mar 18 08:37:26 BRT 2015
03-18 08:37:56.364: I/JOB(32662): Wed Mar 18 08:37:56 BRT 2015
03-18 08:39:21.418: I/JOB(32662): Wed Mar 18 08:39:21 BRT 2015
03-18 08:41:51.670: I/JOB(32662): Wed Mar 18 08:41:51 BRT 2015
03-18 08:45:52.192: I/JOB(32662): Wed Mar 18 08:45:52 BRT 2015
03-18 08:54:20.678: I/JOB(32662): Wed Mar 18 08:54:20 BRT 2015
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我用setPeriodic(60000)方法设置它应该在1分钟内执行至少1次.同样好奇的是如何在运行之间增加间隔.此时的时间是2015年3月18日星期三09:09:00 BRT 2015并且工作不会被执行更多.

这是JobScheduler API的问题吗?(我在Android 5.0.1的Nexus 5中运行)

jobs android scheduling task android-jobscheduler

8
推荐指数
2
解决办法
6403
查看次数

这个常量表达式的计算抛出一个表达式

我的飞镖分析在代码中显示以下错误:

error: Evaluation of this constant expression throws an exception. 
        (const_eval_throws_exception at [laundry] 
        lib\pick_drop_ui\pages\works.dart:97) error: Arguments of a constant creation must be constant expressions. 
        (const_with_non_constant_argument at [laundry] 
        lib\pick_drop_ui\pages\works.dart:98) error: Arguments of a constant creation must be constant expressions. 
        (const_with_non_constant_argument at [laundry] 
        lib\pick_drop_ui\pages\works.dart:104) error: Evaluation of this constant expression throws an exception. 
       (const_eval_throws_exception at [laundry] 
       lib\pick_drop_ui\pages\works.dart:104)
Run Code Online (Sandbox Code Playgroud)

在以下代码中:

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

class work extends StatefulWidget {
  @override
  _workState createState() => _workState();
}

class _workState extends State<work> {

  var workdata;                        //Variable to …
Run Code Online (Sandbox Code Playgroud)

dart android-studio flutter

8
推荐指数
1
解决办法
5142
查看次数

致命异常:在 Retrofit 网络请求期间:Kotlin Coroutine

我在 android kotlin 中使用协同例程和改造进行 API 调用时遇到致命异常。并且应用程序崩溃并出现以下异常。

E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-7
Process: com.jamhub.barbeque, PID: 18525
java.net.SocketTimeoutException: timeout
    at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.java:656)
    at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.java:664)
    at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:153)
    at okhttp3.internal.http2.Http2Codec.readResponseHeaders(Http2Codec.java:131)
    at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:126)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
Run Code Online (Sandbox Code Playgroud)

尝试添加超时,CoroutineExceptionHandler

val client = OkHttpClient().newBuilder().addInterceptor(object : Interceptor {
                    override fun intercept(chain: Interceptor.Chain): Response {
                        val request = chain.request()
                            .newBuilder()
                            .build()
                        return chain.proceed(request)
                    }
                }).callTimeout(30, TimeUnit.SECONDS)
                    .connectTimeout(10, TimeUnit.SECONDS)
                    .writeTimeout(10, TimeUnit.SECONDS)
                    .readTimeout(30, …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-coroutines

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