小编dda*_*ian的帖子

永远不会调用AsyncTask onPostExecute

我不确定我做错了什么,但onPostExecute永远不会被调用.

  • 创建了一个名为BaseActivity.java的基类
  • 从我最初的Activity中扩展了这个类.
  • 在BaseActivity中放置PostToOpenFeint类
  • 从我做的主要活动的UI线程调用它:

    new PostToOpenFeint.execute();
    
    Run Code Online (Sandbox Code Playgroud)

onPreExecute(),doInBackground(..)被触发,但由于某种原因,onPostExecute永远不会被调用.

先感谢您!

戴夫

 private class PostToOpenFeint extends AsyncTask<Void, Void, Void> {
  /*
   * (non-Javadoc)
   * 
   * @see android.os.AsyncTask#doInBackground(Params[])
   */
  @Override
  protected Void doInBackground(Void... params) {
   // does all the work here
   return null;
  }


  /*
   * (non-Javadoc)
   * 
   * @see android.os.AsyncTask#onPostExecute(java.lang.Object)
   */
  @Override
  protected void onPostExecute(Void result) {
   // TODO Auto-generated method stub
   super.onPostExecute(result);
   Toast.makeText(MainScreen.this, "Done syncing", Toast.LENGTH_LONG).show();
  }

  /*
   * (non-Javadoc)
   * 
   * @see android.os.AsyncTask#onPreExecute()
   */
  @Override
  protected void onPreExecute() {
   // …
Run Code Online (Sandbox Code Playgroud)

android android-asynctask

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

如何在Android中检测触摸事件

是否有可能检测到活动中的所有触摸事件并捕获它然后作为回传将该事件传递给另一个视图?

例如:

按钮1和按钮2.当按下按钮1时,我想捕获该触摸/点击事件并自动将该触摸事件传递给按钮2,基本上只需按一下/按下即可生成点击并将相同的点击传递给按钮2第二个按钮自动.

android

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

base64编码音频文件并作为String发送然后解码字符串

我一直坚持这个问题几个小时,现在试图让它工作.基本上我要做的是以下内容.Base64编码从Android设备上的SD卡中拾取的音频文件,Base64对其进行编码,将其转换为字符串,然后再次使用Base64解码字符串并将文件保存回sdcard.听起来相当简单,使用文本文件时效果很好.例如,如果我创建一个简单的文本文件,调用它dave.text并注入一些文本,说"Hello Dave"或类似的东西它工作得很好,但是当我尝试用二进制文件做同样的事情时失败,在这个例子中是音频.这是我正在使用的代码.

File file = new File(Environment.getExternalStorageDirectory() + "/hello-4.wav");
byte[] FileBytes = FileUtils.readFileToByteArray(file);

byte[] encodedBytes = Base64.encode(FileBytes, 0);
String encodedString = new String(encodedBytes);                                        
Utilities.log("~~~~~~~~ Encoded: ", new String(encodedString));

byte[] decodedBytes = Base64.decode(encodedString, 0);
String decodedString = new String(decodedBytes);
Utilities.log("~~~~~~~~ Decoded: ", new String(decodedString));

try {
    File file2 = new File(Environment.getExternalStorageDirectory() + "/hello-5.wav");
    FileOutputStream os = new FileOutputStream(file2, true);
    os.write(decodedString.getBytes());
    os.flush();
    os.close();
} catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

此时如果我尝试保存文件,它就会被破坏.音频文件hello-5.wav的大小比原始大,并且不播放.

我在这里做错了什么想法?如果我尝试使用os.write(decodingBytes)保存decodeBytes,它可以工作但不能在转换为String时使用getBytes().

有任何想法吗?谢谢!

java android

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

Jingle在Android和XMPP上

我们正在尝试构建一个PTT(按键通话)应用程序.我们的想法是通过无线方式将音频文件从一个设备发送到另一个设备.Jingle是唯一合乎逻辑的选择,如果有的话,是否有任何关于如何在Android环境中进行此设置的指针?+ XMPP还是有更好的解决方案吗?

更糟糕的情况我想到有一个C2DM推送通知从一个设备飞到另一个设备并且每个推送有效负载通知设备音频文件在服务器上的位置并且该单元流传输音频文件,但它似乎太脆弱了这样,因为推送通知可能并不总是得到保证,或者它可能需要一些时间才能到达设备等.这里的想法是尽可能快地获得真实的体验.

任何帮助都非常感谢.

android

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

标签 统计

android ×4

android-asynctask ×1

java ×1