我想创建一个应用程序,我将在其中将数据上传到服务器。感觉我正在将数据上传到服务器,因此当用户移动连接时,在上传数据连接可能会丢失时,连接可能会丢失一段时间。所以我想要的是,如果连接丢失,应该在后台运行一些东西,一旦连接可用,它总是会搜索连接,它开始将数据发送到服务器。谁能告诉我如何做到这一点。有什么方法可以同时查看wifi和移动互联网的信号强度。任何想法都值得赞赏。提前致谢。
问问题
3501 次
2 回答
0
使用setInterval方法,将您的网络连接状态函数(使用 phonegap api)包装在其中。因此它将在特定的时间间隔内触发。建立连接后,将数据上传到服务器
于 2013-10-07T11:04:52.167 回答
0
让我首先尝试回答您的第一个问题:后台处理。事实上,有多种方法可以实现这一点。第一个是真正的后台进程,例如Linux 守护进程。只需查找有关此的各种文章。另一种是从 GUI 线程启动一个线程。这是一个简单的例子:
public void onStartButtonClick(View view) {
Log.i("onStartButtonClick", "clicked");
mProgress = 0;
new Thread() {
@Override
public void run() {
Log.i("thread-" + Thread.currentThread().getId(), "run() method just started");
while (mProgress < 100) {
try {
Thread.sleep(mSleepTime);
mProgress++;
Log.i("thread-" + Thread.currentThread().getId(), "progress is " + mProgress);
mHandler.post(mUpdateGUI);
} catch (InterruptedException e) {
// e.printStackTrace();
}
}
}
}.start();
请注意,这是一个过于简单的示例。mHandler.post() 已添加为回调原始 GUI 线程的选项(不允许直接从线程调用 GUI)。这需要在您的课程中添加一些额外的代码:
// Need handler for callbacks to the UI thread
final Handler mHandler = new Handler();
// Create runnable for posting
final Runnable mUpdateGUI = new Runnable() {
public void run() {
updateProgress();
}
};
允许在 GUI 上调用 updateProgress 方法。例子:
private void updateProgress() {
mProgressBar.setProgress(mProgress);
}
希望这可以帮助您朝着正确的方向前进。祝你好运。
于 2013-10-07T11:08:51.403 回答