Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 代码异常异步_Android_Asynchronous_Broadcastreceiver - Fatal编程技术网

Android 代码异常异步

Android 代码异常异步,android,asynchronous,broadcastreceiver,Android,Asynchronous,Broadcastreceiver,我有一个问题,我在一行调用一个方法,在下一行调用另一个方法,需要完成前一个方法,但不是正在发生的事情,我得到一个NPE 这是我的台词,当我长按列表时开始 @Override public boolean onItemLongClick(AdapterView<?> adapter, View arg1, int pos, long arg3) { String nick = ((UserList) adapter.getAdapter()).getLista

我有一个问题,我在一行调用一个方法,在下一行调用另一个方法,需要完成前一个方法,但不是正在发生的事情,我得到一个NPE

这是我的台词,当我长按列表时开始

@Override
public boolean onItemLongClick(AdapterView<?> adapter, View arg1, int pos,
        long arg3) {

    String nick = ((UserList) adapter.getAdapter()).getLista().get(pos)
            .getNick();

    if (activity.service.getConversa(nick) == null) {
        activity.service.addPVTConversa(nick); //need this completed
    } 
        activity.selectTab(nick); //to call this

    return true;
}
然后发送给接收者:

@Override
    public void onReceive(Context context, Intent intent) {
        String target = intent.getStringExtra(MyService.EXTRA_NICK);
        addPVTTab(target);

    }
这是我的问题:我需要在addPVTTab()之后调用selectTab()方法,因为selectTab()正在查找尚未创建的选项卡。所有代码都在主线程上运行,但在addPVTTab()之前调用selectTab()。我该怎么办?
提前感谢。

是的,这是通过
sendBroadcast()/onReceive()实现的。
。你应该在你的
receiver.onReceive()
中调用
selectTab()

这会让我的生活有点复杂,但如果没有其他方法,我会改变它。谢谢。你也可以使用一个界面来传递消息,说添加了一个新标签。这将是一个同步调用。
@Override
    public void onReceive(Context context, Intent intent) {
        String target = intent.getStringExtra(MyService.EXTRA_NICK);
        addPVTTab(target);

    }