Articles of asynchronous

闩锁(用于等待asynchronous响应)冻结WebView(和UI)

我有一个应用程序,显示在整个布局的webview。 有时我需要调用一个asynchronous方法,asynchronous操作由一个三方sdk完成,然后等待一段时间,直到获得对指定侦听器的响应。 我用锁存器解决了这个问题 – 一旦收听者收到响应,我计数下锁存器,然后启动方法可以继续响应。 不幸的是,当我这样做时,WebView卡住了。 我猜想原生UI会卡住,但我没想到webview也被冻结了。 这怎么能克服? 为了更清楚,这里是一个例子。 我需要ajaxFunc等到MyAsyncListener得到一个特定的响应,然后返回这个确切的响应。 JS的一部分我注入到webview中: var response = jsHandler.ajaxFunc(request.data); 我有一个名为response的variables全局variables。 public class JavaScriptInterface { @JavascriptInterface public String ajaxFunc(String data) { return MyUtils.handleData( data ); } } handleData方法: public String handleData( String data ) { SomeClass.startAsyncRequest(); // starts the async request, response is to come at the listener's callbacks . […]

Android蓝牙套接字教程,用于无阻塞通信

我正在寻找Android上的蓝牙示例代码来做非阻塞套接字通信。 我发现了几个例子,像BluetoothChat或BluetoothSocket.java,但没有一个是non-blocking socket communication. ps做非阻塞自动意味着必须是asynchronous的? 我想实际上不是 – 这是不一样的,我认为我可以做超时同步套接字通信。 这是我正在寻找的那种例子… 非常感谢你

如何从AsyncTask使用SQLite数据库?

我一直在使用我的Activity类访问我的数据库,这使我的程序有时会冻结。 所以我决定使用AsyncTask来处理数据库。 我的问题是我不知道如何从AsyncTask的类实例化我的SQLite数据库“TheDB” public class myClass extends AsyncTask<Void, Void, Void>{ private TheDB db; any method() { this.db = new TheDB(this); //<– Error here } 这对Activity类很好,但我不知道如何在这里使用它 TheDB的构造函数是TheDB(Context上下文),但是这个类不是一个“上下文”,所以我如何在这里使用我的数据库呢? 请提供例子,如果可以的话 请不要给我链接到谷歌的参考,是一个新手,我觉得他们很难遵循

使用SyncAdapter而不创build帐户

我的应用程序允许人们使用和pipe理他们的数据,无论他们login。虽然,因为我唯一标识每个设备,我想同步从我的匿名用户(不logging)的数据。 所以,我想知道在这种情况下创build一个匿名帐户是否是一个好习惯,因为SyncAdapters只能用于帐户。 我应该为我的匿名用户创build一个帐户,还是应该将他们的数据与线程/ AsyncTasks / Loaders同步? 特别是,有没有办法使ContentResolver.requestSync()工作,而不需要一个帐户?

Bundle对象的突变

我正在使用遗留代码,我发现这个函数中有一个不一致的行为: @Override public void openFragment(final Class<? extends BaseFragment> fragmentClass, final boolean addToBackStack, final Bundle args) { long delay = 0; if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) { delay = getResources().getInteger(android.R.integer.config_shortAnimTime) * 2; } // FIXME: quick fix, but not all cases final Bundle args666 = args != null ? (Bundle) args.clone() : null; new Handler().postDelayed(new Runnable() { @Override public […]

asynchronous删除ListView / RecyclerView项目的最佳做法

我有一个CursorLoader ListView 。 用户可以打开ListView项目(打开另一个Fragment )或删除项目。 所有数据库操作都是asynchronous发生的,通常只需要几分之一秒的时间。 但从技术上讲,用户可以删除一个项目,然后在删除callback和导致错误之前打开该项目。 处理这个问题的最好方法是什么? 这里是我看到的选项。 假设AsyncTask总是会很快发生,以避免出现问题 在UI线程上执行数据库操作 在AsyncTask之前使ListView无效(但这会在UI中导致闪存) 在AsyncTask阻止用户input 编辑:我结束了使用RecyclerView但我不能调用adapter.notifyItemRemoved(itemPos)直到我已经从数据库中删除项目。

如何从phonegap插件获取android服务返回消息

我正在尝试为PhoneGap(Android)制作一个插件,它允许我的JavaScript发送和接收来自服务的消息。 我确切的问题是,因为消息返回asynchronous,我不能发送PluginResult插件的执行function。 这是插件代码: public class ServiceClient_plugin extends Plugin { Messenger messenger_service=null; boolean connected_to_service=false; final Messenger messenger_receive = new Messenger(new IncomingHandler()); @Override public PluginResult execute(String action, JSONArray data, String callbackId) { PluginResult result = null; try { if (action.toUpperCase().equals("CONNECT")) { result = ConnectService(); } else if (action.toUpperCase().equals("DISCONNECT")) { result = DisconnectService(); } else if (action.toUpperCase().equals("IS_CONNECTED")) { […]

Loopj AndroidasynchronousHttp – onFailure未解雇

我使用来自loopj的伟大的asynchronoushttp库,但我遇到了一个小的障碍。 如果用户没有互联网连接或失去他们的连接,应用程序将不会返回任何东西。 这部分是预期的,但它也不会触发onFailure方法。 此外,我有一个互联网连接时使用的代码工作,所以没有问题的服务器端。 这是一些代码被剥离到最低限度。 这也行不通(我也testing过了) String url = getString(R.string.baseurl) + "/appconnect.php"; client.getHttpClient().getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true); client.get(url, null, new JsonHttpResponseHandler() { @Override public void onSuccess(JSONArray response) { Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show(); } @Override public void onFailure(Throwable e, JSONArray errorResponse) { Toast.makeText(getApplicationContext(), "Failure", Toast.LENGTH_SHORT).show(); } }); 谢谢,阿什利

在robospice中暂停后台进程

是否有可能暂停当前正在运行的后台服务,并从停止执行的点开始重新运行它? 如果不是,至less可以发送一个信号来停止执行SpiceService,然后才能执行它?

在listView中加载asynchronous图像

我想从服务器加载图像,在列表视图中加载数据之后。 我知道这个问题存在很多的话题,但我还没有find解决scheme… 所以这是我的代码: //asyncTackClass for loadingpictures public class LoadImagesThread extends AsyncTask<Bundle, Void, Bitmap> { private ImageView view; private Bitmap bm; private Context context; private final WeakReference<ImageView> imageViewReference; private final String BUNDLE_URL = "url"; private final String BUNDLE_NAME = "name"; private final String BUNDLE_BM = "bm"; public LoadImagesThread(Context context, ImageView view) { this.context=context; imageViewReference = new […]