Rumah  >  Soal Jawab  >  teks badan

java - 安卓实现熄屏功能。

在APP中定义一个时间(假设为5分钟),记录两次操作APP之间的时间间隔,如果大于之前定义的时间,则APP端实现发出命令,手机屏幕熄灭。该功能要如何实现?

迷茫迷茫2716 hari yang lalu658

membalas semua(2)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:55:12

    Titik pertama ialah fungsi skrin kunci Anda boleh merujuk kepada: https://github.com/chniccs/Lo...
    Projek kecil ini ialah pelaksanaan fungsi skrin kunci, dengan jumlah yang kecil. kod.

    Perkara lain ialah untuk melihat cara anda mentakrifkan setiap operasi Di sini, memaparkan aktiviti ke latar depan akan dianggap sebagai operasi Anda juga boleh menulis semula pendengar sentuh untuk mentakrifkan beberapa operasi sentuh sebagai operasi.
    1. Tulis BaseActivity, hantar mesej tertunda (siaran atau pengendali lain) dalam onResume (ini digunakan di sini untuk mewakili operasi), dan rekod masa semasa (disimpan dalam Aplikasi tersuai atau singleton global atau Storan kegigihan )
    2. Mengikut kaedah sebelumnya menghantar mesej tertunda, seperti siaran, selepas menerima mesej siaran, bandingkan nilai masa semasa dengan nilai masa yang direkodkan dalam langkah 1, jika kurang daripada nilai masa yang ditetapkan , maka perbezaan antara dua nilai masa (disimpan dan semasa) diambil semula sebagai kelewatan dan kemudian siaran dihantar. Apabila siaran diterima kali seterusnya, ia akan dinilai semula Jika lebih besar daripada atau sama dengan nilai masa, skrin kunci akan dipanggil.

    Penjelasan: Dalam langkah 2, mengapa anda perlu mengambil perbezaan dan bukannya menghantar semula siaran kelewatan tetap Ini kerana selepas menghantar siaran buat kali pertama, anda mungkin melakukan beberapa operasi, dan operasi ini akan diikuti kemudian. Maksudnya, apabila anda menerima siaran tertunda, masa operasi terakhir bukanlah masa yang direkodkan apabila siaran dihantar, tetapi masa operasi terakhir yang sebenar. Oleh itu, nilai masa yang direkodkan perlu dikemas kini selepas setiap operasi.

    Pengiraan perbezaan: ditentukan masa maksimum tetap tanpa operasi - (masa semasa - masa operasi terakhir)

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:55:12

    Gunakan kaedah PostDelayed(Dapat dijalankan, panjang) Pengendali
    1. Tentukan kelas Pengendali

    Handler handler=new Handler();  
    Runnable runnable=new Runnable() {  
        @Override  
        public void run() {  
            // TODO Auto-generated method stub  
            //要做的事情  
            handler.postDelayed(this, 2000);  
        }  
    };  

    2. Pemasa mula

    handler.postDelayed(runnable, 2000);

    3. Hentikan pemasa

    handler.removeCallbacks(runnable); 
    

    Mungkin itu caranya, anda tentukan pada masa anda sendiri

    balas
    0
  • Batalbalas