java - 安卓实现熄屏功能。
迷茫
迷茫 2017-04-18 10:53:12
0
2
720

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

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(2)
Ty80

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)

左手右手慢动作

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan