如何让一个进程继续在phonegap android的后台运行

时间:2013-10-07 10:41:54

标签: android background-process cordova-2.0.0

我想创建一个应用程序,我将把数据上传到服务器。感觉我正在将数据上传到服务器,因此当上传数据连接的用户在移动连接时不会保持不变时,没有必要丢失。所以我想要的是如果连接丢失了应该在后台运行的东西,一旦连接可用,它将始终搜索连接,它开始将数据发送到服务器。 任何人都可以告诉我如何做到这一点。有没有办法找到无线和移动互联网信号的强度。 任何想法都表示赞赏。 提前致谢。

2 个答案:

答案 0 :(得分:0)

使用setInterval方法,将network connection状态函数(使用phonegap api)包装在其中。因此它将触发特定的时间间隔。建立连接后,将数据上传到服务器

答案 1 :(得分: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);
}

希望这可以帮助您朝着正确的方向前进。祝你好运。