小编Eli*_*zer的帖子

Java读取文件大于2 GB(使用分块)

我正在实现文件传输服务器,我遇到了通过网络发送大于2 GB的文件的问题.当我得到File我想要使​​用并尝试将其内容读入a 时,问题就开始了byte[].我有一个for循环:

for(long i = 0; i < fileToSend.length(); i += PACKET_SIZE){
    fileBytes = getBytesFromFile(fileToSend, i);  
Run Code Online (Sandbox Code Playgroud)


其中getBytesFromFile()读取一个PACKET_SIZE字节数fileToSend,然后在for循环中将其发送到客户端.getBytesFromFile()使用i作为偏移; 但是,偏移量变量FileInputStream.read()必须是int.我确定有更好的方法将这个文件读入数组,我还没有找到它.

我宁愿不使用NIO,虽然我将来会改用它.放纵我的疯狂:-)

java io networking bytebuffer

5
推荐指数
1
解决办法
2038
查看次数

Android AppWidget未在某些电话上显示

我有一个非常简单的appwidget(两个文本视图和一个按钮).我在触摸板,Droid 1和Droid Razr上进行了测试.它适用于除Razr之外的所有事物.当我将小部件添加到主屏幕时,它不会显示; 它只是看不见的.如果我按住它会选择一个小部件的位置,如果我移动它,我会看到其他小部件移开,但它完全不可见.

我在onReceiveand和onEnabled方法中放了一些Toast,并Toast显示了所有正确的信息(即意图动作和附加内容).

有人有这方面的经验吗?

编辑:请记住,这仅用于调试,不遵循最佳实践

public class GoogleTalkWidget extends AppWidgetProvider {

    Button sendMessage;

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Received Intent Action = " +
                intent.getAction(), Toast.LENGTH_SHORT).show();

        if(intent.getAction().equals(Utils.RECEIVED_MESSAGE_WIDGET)){
            RemoteViews views = new RemoteViews(context.getPackageName(),
                R.layout.main_widget);

            views.setTextViewText(R.id.widget_message, 
                (CharSequence)intent.getStringExtra("MESSAGE"));

            views.setTextViewText(R.id.widget_sender, 
                (CharSequence)intent.getStringExtra("SENDER"));

            Toast.makeText(context, "Received " + 
                intent.getStringExtra("MESSAGE") + " FROM " + 
                intent.getStringExtra("SENDER"), Toast.LENGTH_SHORT).show();

            ComponentName cn = new ComponentName(context, 
                GoogleTalkWidget.class);  

            AppWidgetManager.getInstance(context).updateAppWidget(cn, views);

        }
        super.onReceive(context, intent);
    }

    @Override 
    public void onEnabled(final Context context){ …
Run Code Online (Sandbox Code Playgroud)

android android-widget android-appwidget

5
推荐指数
1
解决办法
363
查看次数

目录上的Android Studio蓝色广场

我刚刚将一个项目从Eclipse导入到Android Studio中进行试用.我看到一些目录在右下角有一个蓝色方块,有些目录是蓝色而不是橙色.这是否意味着什么(我认为它确实如此),如果是这样,它意味着什么?

在此输入图像描述

android intellij-idea android-studio

5
推荐指数
1
解决办法
2648
查看次数

具有AppEngine,Webapp2和Cloud Endpoints Proto Datastore的多个Auth提供程序

我正在开发一个允许用户使用simpleauth进行身份验证的webapp .目前我将支持谷歌和Facebook.除了登录和注销(使用webapp2)之外,webapp还将包含Cloud Endpoint API.客户端将是web,Android和iOS.

我的问题是,如果用户的身份验证提供者是Facebook(或任何其他受支持的OAuth2提供商),我可以使用Endpoints Proto Datastore来user_required=True调用endpoints.get_current_user()我的用户@Model.method吗?如果不可能,这是否意味着我不应该拥有user_required=True并且应该在给定OAuth2令牌的情况下从提供者处获取永久用户ID并将其保留在数据存储区中,为该用户生成我自己的身份验证令牌,然后将该令牌传递给每个请求?

编辑:没有传递身份验证令牌,让经过身份验证的用户请求他们可以传递给API方法的"API令牌"是否有意义?这个令牌是否必须包含在POST或GET正文中,或者它是否可以放在标题/ cookie中(我在其他地方看到了有关使用Cloud Endpoints的标题和cookie的一些问题,但从那以后它已经有一段时间了).这都假设非Google身份验证不起作用.

google-app-engine oauth-2.0 google-cloud-endpoints endpoints-proto-datastore gae-userservice

5
推荐指数
1
解决办法
1417
查看次数

Android Wear 节点 ID 是否唯一

Android Wear 节点 ID 是否唯一(将节点 ID 存储为对特定穿戴设备的引用是否安全)?

如果没有,是否有一种独特的方法来识别特定的穿戴设备?

android wear-os

5
推荐指数
1
解决办法
702
查看次数

Android Wear DataMap条目保持有效的时间

我正在扩展我的一个应用程序以使用Android Wear,我需要向Wear发送4个位图.我正在使用DataApiDataMap执行此操作,目前它正常工作.

我的问题是,数据保持同步多长时间DataApi?一周后我还能访问它们吗?这是我必须手动管理的东西.例如,如果某个状态会在手机上发生变化,我需要发送不同的位图.我是否需要删除目前存在的?

android android-wear-data-api wear-os

5
推荐指数
1
解决办法
743
查看次数

Android库声明样式运行时错误

我有一个库,在maven中心有一些小部件.当我将该库作为依赖项(从maven中心)添加到使用gradle的项目时,我得到:

java.lang.NoClassDefFoundError: com.my.pacakge.R$styleable
Run Code Online (Sandbox Code Playgroud)

如果我手动下载.aar并将其包含在项目中,一切正常.我尝试使用Android Studio的代码完成来查看是否R包含了库.当我使用maven依赖时,键入不com.my.pacakge.R返回任何结果,但是当我使用本地.aar时,它返回R库的库.

这是库代码:

// widget constructor
public ForegroundImageView(Context context, AttributeSet attrs) {
    super(context, attrs);

    TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ForegroundImageView);
    Drawable foreground = a.getDrawable(R.styleable.ForegroundImageView_android_foreground);
    if (foreground != null) {
        setForeground(foreground);
    }
    a.recycle();
}

// attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="ForegroundImageView">
        <attr name="android:foreground"/>
    </declare-styleable>
</resources>
Run Code Online (Sandbox Code Playgroud)

android maven android-build android-gradle-plugin aar

5
推荐指数
1
解决办法
277
查看次数

AsyncTask方法调用中的Toast问题

嘿大家,
我有一个AsyncTask将一些数据发布到服务器.它通过调用我从doInBackground编写的静态方法来实现.当我运行的AsyncTask,我送调用执行()活动的背景下,这是我送给我的静态方法,因为它需要它来敬酒如果在谈话的服务器出现问题.但是,当在静态方法中进行Toast时,我收到此错误:

04-21 12:49:16.689: ERROR/AndroidRuntime(2123): FATAL EXCEPTION: AsyncTask #1
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): java.lang.RuntimeException: An error occured   while executing doInBackground()
04-21 12:49:16.689: ERROR/AndroidRuntime(2123):at android.os.AsyncTask$3.done(AsyncTask.java:200)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.util.concurrent.FutureTask.setException(FutureTask.java:125)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at java.lang.Thread.run(Thread.java:1019)
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
04-21 12:49:16.689: ERROR/AndroidRuntime(2123): at android.os.Handler.<init>(Handler.java:121)
04-21 …
Run Code Online (Sandbox Code Playgroud)

android thread-safety toast android-asynctask

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

Kotlin解包函数编译器错误

任何人都知道为什么以下代码不起作用?

private fun wrapLogIfNeeded(buildMessageOnCurrentThread: Boolean, log: () -> String): () -> String
  return if(buildMessageOnCurrentThread) {
    val message = log() // Type mismatch: Required () -> String Found: Unit
    { message }
  }
  else {
     log
  }
}
Run Code Online (Sandbox Code Playgroud)

但这样做:

private fun wrapLogIfNeeded(buildMessageOnCurrentThread: Boolean, log: () -> String): () -> String
  return if(buildMessageOnCurrentThread) {
    val message = lazy { log() }.value
    { message }
  }
  else {
     log
  }
}
Run Code Online (Sandbox Code Playgroud)

kotlin

4
推荐指数
1
解决办法
69
查看次数

将 Kotlin 内联类传递给 Retrofit 函数是否安全

如果我有以下内联类:

interface StringId {
  val raw: String
}

@JvmInline
value class MyId(override val raw: String) : StringId
Run Code Online (Sandbox Code Playgroud)

将其传递给 Retrofit 函数是否安全?

interface MyApiEndpoints {
  @GET("/fetch/{id}")
  suspend fun fetch(@Path("id") id: MyId): Response<JsonObject>
}
Run Code Online (Sandbox Code Playgroud)

kotlin retrofit retrofit2

4
推荐指数
1
解决办法
572
查看次数