Android 代码异常异步
我有一个问题,我在一行调用一个方法,在下一行调用另一个方法,需要完成前一个方法,但不是正在发生的事情,我得到一个NPE 这是我的台词,当我长按列表时开始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
@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);
}