小编Gab*_*mas的帖子

接口的方法应该抛出异常吗?

我的意思是,在定义中.如果我有一个实现接口的类的方法,并且我想抛出异常,如果接口没有throws声明,我怎么能这样做.

谢谢

java interface exception

4
推荐指数
2
解决办法
7499
查看次数

jquery"everyTime"函数

我试图每5秒刷新一次我最近的列表.我在看ajax并发现了jquery.

我找到了一个名为"everyTime"的函数

这是我到目前为止,我真的不知道如何让它工作......它不起作用:\

<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).everyTime(5s, function(i) {
  <?php include "recent.php";?>
}, 0);
</script>
</head>
<body>
<div id="testDiv">
<h2>This is default. Waiting for refresh</h2>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)

jquery

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

带回调的定时器

信息

  • 我有一个SensorClass类来管理一些传感器.
  • 我有一个方法A()的接口.
  • 我有一个测试器类TestClass,它使用方法A()实现接口,并将此实现传递给SensorClass.TestClass扩展了Activity.

目的

  • 每隔X秒我需要调用存储在SensorClass中的接口的实现方法.这是一个回调.
  • 我不知道如何实现方法A(),因此它可以修改其活动的视图.
  • 我需要一个Timer,因为我想每隔X秒从SensorClass中存储的接口启动回调执行方法A().因此,我做了以下事情:
public void do (){
 timer.scheduleAtFixedRate (new TimerTask (){
  public void run (){
   storedInterface.A ();
  }
 }, 0, speed);
}
  • 但正如我所说,我不知道如何实现A().我必须在runOnUIThread()中运行该方法,因为它可以修改视图.
private void startCallback (){
 runOnUiThread (new Runnable (){
  public void run (){
   storedInterface.A ();
  }
 });
}

public void do (){
 timer.scheduleAtFixedRate (new TimerTask (){
  public void run (){
   startCallback ();
  }
 }, 0, speed);
}
  • 问题:SensorClass不是Activity,因此runOnUIThread()将导致错误.

可行的解决方法

从一个Activity扩展SensorClass但是SensorClass不是一个带有onCreate(),onPause()等方法的Activity!我不喜欢这个解决方案.


我的问题是:如何在只接收来自Activity的上下文的类中调用runOnUIThread()?或者......我的问题还有其他解决办法吗?

谢谢.

multithreading android timer

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

如何从服务器下载文件

我对一般设计实现有疑问.希望比我更熟练的人帮助我.

我想做一个基于android客户端和java服务器的应用程序.本地wifi传输,没有3G.

基本上,客户端必须连接到服务器并使用代码请求下载文件.

我怎样才能做到这一点?

我知道的事情:

  • 我必须在客户端创建一个后台线程,以在SD卡中创建一个文件,并使用Handler更新进度条以与UI线程进行通信.

  • 服务器必须是多线程且无阻塞的.

  • 该文件是一个二进制文件,如mp3音频.所以服务器必须:

    1. 发送有关文件的信息:名称和总长度.
    2. 打开文件,读取并发送字节,直到它没有到达结尾.

  • 客户必须:

    1. 接收有关文件的信息并创建一个空文件.
    2. 读取字节并将其转储到空文件中.更新进度条.
    3. 收到所有字节后关闭文件.

我知道在C中实现客户端和服务器(非常糟糕)但我开始使用java完成的真实客户端 - 服务器应用程序.

问题:

  • 如何从服务器下载像mp3这样的二进制文件到客户端?

  • 我必须把我的服务器应用程序放在哪里?我想我必须创建一个jar,将它保存在一个文件夹中并在PC启动时执行它,对吗?

谢谢!

java multithreading android

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

单击特定视图时,如何在列表视图中获取项目的位置?

正如标题所示,当我点击项目内的视图时,我想知道项目的确切位置.

假设我在ArrayAdapter的getView()方法中有以下代码:

...
holder = new ViewHolder ();
holder.iconAction = (ImageView)convertView.findViewById (R.id.download_item_iconAction);
holder.iconAction.setOnClickListener (new View.OnClickListener(){
    @Override
    public void onClick (View v){
        //Item X is clicked
    }
});
...
Run Code Online (Sandbox Code Playgroud)

在onClick()中,我知道点击的视图,v,但我不知道项目的位置.

我们来做个伎俩.当getView()创建视图时,我将在ViewHolder中保存位置:

public View getView (int position, View convertView, ViewGroup parent){
    ViewHolder holder;
    if (convertView == null){
        holder = new ViewHolder ();
        holder.iconAction = (ImageView)convertView.findViewById (id);
        holder.iconAction.setOnClickListener (new View.OnClickListener(){
            @Override
            public void onClick (View v){
                int pos = (Integer)v.getTag ();
            }
        });
        holder.iconWait.setTag (position);

        ...
    }else{
        holder = (ViewHolder)convertView.getTag ();
    }

    ... …
Run Code Online (Sandbox Code Playgroud)

android listview click android-arrayadapter

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

如何使用winrun4j创建Windows服务

我一直在阅读文档,但我无法启动和停止服务.

我的.ini文件是:

main.class=test.TestService
service.class=test.TestService
service.id=StreamServer
service.name=StreamServer
service.description=Servidor que proporciona una comunicación con streams.
service.controls=stop   
classpath.1=*.jar
Run Code Online (Sandbox Code Playgroud)

TestService类是:

package test;

public class TestService{
    private static TestServer server;

    public static void main (String[] args){
        if (args.length == 1){
            if (args[0].equals ("start")){
                if (server == null){
                    server = new TestServer (5000);
                    server.start ();
                }
            }else if (args[0].equals ("stop")){
                if (server != null){
                    server.stop ();
                    server = null;
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我必须修改这个类,但我不知道如何.

谢谢.

java windows-services

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

如何知道Activity已经启动了当前的Activity

我如何知道Activity已启动当前活动?是否有任何特定方法,即getIntent().getCallerActivity()或者唯一的方法是在Intent中保存一些信息putExtra()

谢谢.

android

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

Android NDK中的C++模板

我正在使用Android NDK r6和Android SDK API 8(2.2).

我正在尝试使用模板实现像std :: vector这样的动态列表,但是我在编译的.o文件中遇到了很多错误.

一个样品:

错误

正如您所看到的,错误是在已编译的.o文件中生成的,而不是在源文件中生成的.

班级定义:

template <class T>
class ArrayList{
    private:
        int mSize;

    public:
        /**
         * Construye una lista dinámica vacía.
         */
        ArrayList ();

        /**
         * Destructor.
         */
        ~ArrayList ();

        /**
         * Añade un elemento a la lista.
         *
         * @param element
         *              Elemento.
         */
        void add (T element);

        /**
         * Obtiene un elemento de la lista.
         *
         * @param index
         *              Índice del elemento. Rango válido de valores: [0, size()]
         * @return …
Run Code Online (Sandbox Code Playgroud)

c++ templates android-ndk

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

对mongoose执行find()时找到的每个文档执行回调

我有:

Emotion.find (query, "-_id", opts, function (error, e){
    if (error) return cb (error, 500);
    for (var i=0, len=e.length; i<len; i++){
        e[i] = convert (e[i]);
    }
    cb (null, e);
});
Run Code Online (Sandbox Code Playgroud)

如果函数返回 1k 个文档,我必须迭代 1k 次。

如何添加为每个文档执行的回调?就像是:

var each = function (e){
    return convert (e);
};

Emotion.find (query, "-_id", opts, each, function (error, e){
    if (error) return cb (error, 500);
    cb (null, e);
});
Run Code Online (Sandbox Code Playgroud)

我基本上需要使用来自 mongodb 的 each():http : //mongodb.github.com/node-mongodb-native/api-generated/cursor.html#each


编辑:也许这可以通过从流中侦听数据事件并将文档推送到数组来完成:

http://mongoosejs.com/docs/api.html#query_Query-stream

mongoose mongodb node.js

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

将对象附加到二进制文件

你有以下方法:

public static void writeToBinary(Object obj, String filename) 
{
 ObjectOutputStream oos = null;
 try {
  oos = new ObjectOutputStream(new FileOutputStream(filename));
  oos.writeObject(obj);
 } catch (Exception e) {
  e.printStackTrace();
 }  finally{
  try{
   if (oos != null) oos.close ();
  }catch (Exception e){
   e.printStackTrace();
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,该方法将对象写入二进制文件.

但是现在您想要重写相同的方法以允许将对象附加到同一文件.
好的,你看一下java文档,你会发现你必须在FileOutputStream中添加一个值为true的参数:

oos = new ObjectOutputStream(new FileOutputStream(filename, true));
Run Code Online (Sandbox Code Playgroud)

你编译但是,哎呀!似乎它继续覆盖文件.

好吧,问题就开始了.在google中搜索后,您会发现必须使用SAME ObjectOutputStream将对象附加到同一文件中.你希望有一个函数,每次调用它时,它都会追加一个对象.即:

writeToBinary("a", filename);
writeToBinary("b", filename);
Run Code Online (Sandbox Code Playgroud)

但正如我之前所说,你必须使用相同的ObjectOutputStream.

解决方案1:

ObjectOutputStream out = getOutputStream (filename);
writeToBinary("a", out);
writeToBinary("b", out);
writeToBinary("c", out);
out.close ();
Run Code Online (Sandbox Code Playgroud)

这非常难看,因为我想隐藏流的使用.

还有其他解决方案吗?

编辑:该方法是静态的.它位于实用程序类中,其中所有方法都是静态的.

编辑2:解决了!附加到ObjectOutputStream …

java

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