小编Zip*_*Zip的帖子

handler.postDelayed在IntentService的onHandleIntent方法中不起作用

final Handler handler = new Handler();
LOG.d("delay");
handler.postDelayed(new Runnable() {
    @Override public void run() {
        LOG.d("notify!");
        //calling some methods here
    }
}, 2000);
Run Code Online (Sandbox Code Playgroud)

"延迟"确实显示在日志中,但根本不显示.并且在其中调用的方法run()也根本不被调用.任何人都可以帮助解释为什么会发生这种情况,我做错了吗?

具有此代码的类扩展了IntentService,这会是一个问题吗?

============================

更新:我将此代码放在扩展的类中IntentService.我发现它唯一有用的地方是构造函数.但我需要把它放在onHandleIntent方法中.所以我检查了文档onHandleIntent,它说:

在工作线程上调用此方法并处理请求.一次只处理一个Intent,但处理发生在独立于其他应用程序逻辑运行的工作线程上.因此,如果此代码需要很长时间,它将阻止对同一个IntentService的其他请求,但它不会阻止其他任何内容.处理完所有请求后,IntentService会自行停止,因此您不应该调用stopSelf.

所以基于我得到的结果,我觉得我不能postDelayed在"工作线程"中使用.但是,任何人都可以解释这一点,比如为什么这不适用于工作线程?提前致谢.

android postdelayed intentservice android-handler android-intentservice

7
推荐指数
3
解决办法
6068
查看次数

如何使用 C 测量 L1、L2 和 L3 缓存延迟?

我对此有一个总体的想法。这就是我的想法:

首先,找出我将使用的 L1 缓存的大小。然后创建一个数组(字节数足够大以适合 L1 缓存),编写一个程序来访问数组的每个元素。然后在每几个循环中创建时间戳。

对于 L2 缓存中的延迟,我可以增大阵列以到达 L2 缓存。

但实际上我不知道如何开始。我不清楚每个缓存的数组应该有多大,以及如何用上面的想法编写这个 C 程序。

谁能帮我写一下这个C程序吗?任何帮助将不胜感激!

多谢!

c arrays caching

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

如何使用媒体源扩展 (MSE) 低延迟模式

我读到 MSE 有这种low-latency模式,它为解码提供零缓冲。不管这可能带来不稳定的性能,理论上它在用于实时流时应该提供更低的延迟。有人知道触发这种low-latency模式的“技巧”吗?

参考:https : //blog.parsecgaming.com/game-streaming-tech-in-the-browser-with-parsec-5b70d0f359bc

video-streaming live-streaming html5-video webrtc media-source

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

如何在Haskell中找到二叉树的所有可能子树?

我需要在二叉树中找到所有可能的子树:

allSubtrees :: BinaryT a -> [BinaryT a]
allSubtrees = undefined
Run Code Online (Sandbox Code Playgroud)

树是:

data BinaryT a =
    Empty
  | Node (BinaryT a) a (BinaryT a)
  deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)

我是Haskell的新手,我知道Haskell中没有while/ forloop.Haskell就是递归.我的问题是,如何在没有无限递归的情况下获得树的所有可能的子树?

binary-tree haskell traversal tree-traversal

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

在arraylist for循环中进行Collections.swap()是否安全?

我有以下代码:

private List<String> listOfStrings = new ArrayList<>();
listOfStrings.add("a");
listOfStrings.add("b");
listOfStrings.add("c");
listOfStrings.add("d");

for (String temp : listOfStrings) {
  if (temp.equals("c")) {
    Collections.swap(listOfStrings, 0, listOfStrings.indexOf(temp));
  }
}
Run Code Online (Sandbox Code Playgroud)

该列表可能不仅仅是String列表,而且可能是我编写的类所定义的对象列表.我不确定这里的交换,我看到它编译并运行良好,但我不知道它是否安全.

有没有人对此有任何建议?如果我需要进行交换.我打算使用for (int i = 0; i < size; i++)迭代和使用list.get(i)来获取项目,但我认为list.get(i)在arraylist 上使用它并不是一个好主意?

任何帮助将不胜感激!!提前致谢!!

java collections for-loop list arraylist

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

在Haskell中,如何生成一个完美平衡的二叉搜索树?

该函数应采用列表xs并构造一个平衡的二叉搜索树,其中包含与xs完全相同的元素集.

结果应该是这样的:(如果列表是[1,2,3,4,5,6,7,8])

节点(节点(节点(节点空1空)2空)4(节点空4空))5(节点(节点空6空)7(节点空8空))

也就是说树应该是这样的:

                5
               / \
              3   7
             / \ / \
            2  4 6  8
           /
          1
Run Code Online (Sandbox Code Playgroud)

而不是这个:

                5
               / \
              4   6
             /     \
            3       7
           /         \
          2           8
         /
        1
Run Code Online (Sandbox Code Playgroud)

谁能告诉我怎么做?我发现我可以做第二棵不完美平衡的树,但不知道如何做第一棵树.

我感谢任何帮助!! 先感谢您!

haskell binary-search-tree

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

如何初始化Hashmap的arraylist?

我对这些hashmap的arraylist真的很陌生.我想创建一个hashmap的arraylist,并将动态地更改循环中的arraylist元素.我的代码如下:

static List<HashMap<Character, Integer>> column = new ArrayList<HashMap<Character, Integer>>(9);
static HashMap<Character, Integer> columns = new HashMap<Character, Integer>();
for(int i=0;i<9;i++)//initialize?
    column.add(i, columns);
for(int i=0;i<9;i++) 
    column.get(i).put(b[xxx][xxx],(int)(b[xxx][xxx]));
Run Code Online (Sandbox Code Playgroud)

起初我没有在这里使用for循环,我认为我在第一行初始化arraylist大小(9)就足够了,但是当我试图获取元素时column.get(5).put(something),它给了我异常IndexOutOfBound.

然后我试着用它column.add(i, null);,但它给了我例外NullPointerException.所以我改变了这个column.add(i, columns);

但现在问题是,当我尝试编辑columnarraylist中的一个hashmap时,arraylist中的每个其他hashmap也会被更改,我想这是因为它们首先被设置为相同的columnshashmap?

所以我的问题是如何初始化hashmaps的arraylist,这样我每次都可以改变它们中的每一个而不影响其他的?

java arraylist hashmap

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

Android - strings.xml 无法转义单引号

这是我得到的错误:

Execution failed for task ':MyPackage:processReleaseResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Users/abc/android-sdk-macosx/build-tools/22.0.1/aapt'' finished with non-zero exit value 1
 No resource found that matches the given name (at 'text' with value '@string/secondary_text').
Run Code Online (Sandbox Code Playgroud)

我的@string/secondary_text是这样的:

<string name="secondary_text">They&#39;re all free to download.</string>
Run Code Online (Sandbox Code Playgroud)

我在这里转义了单引号,我&apos;也尝试过,但仍然不起作用。唯一有效的是我They're改为They are.

有谁知道如何在 Android 上转义单引号?

android android-xml

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

Android应用中setText上的空对象引用

我的应用程序在setText这里崩溃了.我想可能是因为它无法找到id所以我调查了R.java并在那里找到了id.我很困惑,为什么它仍然崩溃.

TextView city = (TextView)findViewById(R.id.city_result);
city.setText(msg[0]);
Run Code Online (Sandbox Code Playgroud)

R.java

public static final int city_result=0x7f080041;
Run Code Online (Sandbox Code Playgroud)

这个代码在public static final class id方法中.

任何帮助将不胜感激!谢谢!!

================更多代码:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_weather_report);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }

    //get message from intent
    Intent intent = getIntent();
    String[] message = intent.getStringArrayExtra(MainActivity.EXTRA_MESSAGE);
    setResult(message);
}
public void setResult(String[] msg)
    {
        //test
        TextView city = (TextView)findViewById(R.id.city_result);
        city.setText(msg[0]);
    }
Run Code Online (Sandbox Code Playgroud)

这个文件我刚刚开始,其他地方只是系统生成的新文件代码,我还没有编辑.这是logcat:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.chen.weather/com.example.chen.weather.WeatherReport}: java.lang.NullPointerException: Attempt to invoke virtual method …
Run Code Online (Sandbox Code Playgroud)

java android textview

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