Cara membuat proses tetap berjalan di background di phonegap android

Saya ingin membuat aplikasi di mana saya akan mengunggah data ke server. Masuk akal saya sedang mengunggah data ke server jadi tidak perlu ketika pengguna memindahkan koneksi tidak akan konstan beberapa saat saat mengunggah koneksi data mungkin terputus. Jadi yang saya inginkan adalah jika koneksi terputus, sesuatu harus berjalan di latar belakang yang akan selalu mencari koneksi segera setelah koneksi tersedia, ia mulai mengirim data ke server. Adakah yang bisa memberi tahu saya cara melakukan ini. Apakah ada cara untuk mengetahui kekuatan sinyal wifi dan internet seluler. Setiap ide dihargai. Terima kasih sebelumnya.


person Neerav Shah    schedule 07.10.2013    source sumber


Jawaban (2)


Menggunakan metode setInterval, bungkus koneksi jaringan fungsi status (menggunakan api phonegap) di dalamnya. Jadi itu akan menjadi pemicu untuk interval waktu tertentu. Setelah koneksi dibuat, unggah data Anda ke server

person RED.Skull    schedule 07.10.2013
comment
saya telah mencoba koneksi jaringan yang digunakan untuk menemukan jenis koneksi yang tidak menggunakan kekuatan sinyal.... - person Neerav Shah; 07.10.2013
comment
saya ingin membuat sesuatu seperti apa yang dilakukan aplikasi whatsapp ketika pengguna mengirim pesan dan jika koneksi terputus, lakukan beberapa proses latar belakang untuk terus memeriksa koneksi internet dan setelah menemukan koneksi, ia mengirim pesan. Saya ingin melakukan hal yang sama saat mengunggah data ke server. - person Neerav Shah; 07.10.2013
comment
@NeeravShah Apakah Anda mendapatkan ide saya. Saya menerapkan ini di aplikasi LBS saya, itu akan mengunggah data ke server ketika mendapat koneksi internet menggunakan koneksi jaringan setinterval + PG - person RED.Skull; 07.10.2013
comment
@ RED.Skull bagaimana jika saya keluar dari aplikasi, apakah itu akan menangani proses latar belakang menggunakan setTimeout - person Hunt; 02.09.2014

Mari saya mulai dengan mencoba menjawab pertanyaan pertama Anda: pemrosesan latar belakang. Faktanya, ada banyak cara untuk mencapai hal ini. Yang pertama adalah proses latar belakang yang nyata, yaitu seperti daemon Linux. Cari saja berbagai artikel tentang itu. Cara lainnya adalah memulai thread dari thread GUI. Berikut ini contoh sederhananya:

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();

Harap perhatikan bahwa ini adalah contoh yang terlalu disederhanakan. mHandler.post() telah ditambahkan sebagai opsi untuk memanggil kembali thread GUI asli (tidak diperbolehkan memanggil GUI langsung dari thread). Ini memerlukan beberapa kode tambahan di kelas Anda:

// 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();
    }
};

Metode updateProgress diperbolehkan untuk memanggil GUI. Contoh:

private void updateProgress() {
    mProgressBar.setProgress(mProgress);
}

Semoga ini bisa membantu Anda ke arah yang benar. Semoga beruntung.

person fredvanl    schedule 07.10.2013
comment
saya ingin membuat sesuatu seperti apa yang dilakukan aplikasi whatsapp ketika pengguna mengirim pesan dan jika koneksi terputus, lakukan beberapa proses latar belakang untuk terus memeriksa koneksi internet dan setelah menemukan koneksi, ia mengirim pesan. Saya ingin melakukan hal yang sama saat mengunggah data ke server. - person Neerav Shah; 07.10.2013
comment
Maaf, saya ketinggalan karena ini tentang proyek 'phonegap'. Saya tidak terbiasa dengan hal itu. Saya hanya memperhatikan tag 'Android' di bawah pertanyaan awal Anda. - person fredvanl; 07.10.2013