java熄屏代碼,java中的清屏代碼
java代碼怎么控制android休眠和喚醒?
喚醒:android.intent.action.SCREEN_ON (代碼)
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為成百上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為古交企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、網(wǎng)站制作,古交網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
休眠:android.intent.action.SCREEN_OFF (代碼)
android系統(tǒng)一段時(shí)間沒(méi)有操作,
屏幕(screen)將從高亮(bright)變?yōu)榘档?dim),如果再過(guò)段時(shí)間還是沒(méi)有操作,屏幕(screen)從暗淡(dim)變?yōu)殛P(guān)閉(off).這時(shí),系統(tǒng)將進(jìn)入休眠.
而對(duì)于某些需要保持系統(tǒng)喚醒甚至屏幕喚醒的應(yīng)用(比如視頻播放器和音樂(lè)播放器)來(lái)說(shuō),就必須要有一個(gè)機(jī)制,使得系統(tǒng)不進(jìn)入休眠狀態(tài),設(shè)置保持屏幕亮屏狀態(tài).
wakelock即用來(lái)實(shí)現(xiàn)以上目的
接下來(lái)對(duì)每一個(gè)模塊具體分析:
powermanager
對(duì)應(yīng)文件是android/frameworks/base/core/java/android/os/PowerManager.java
在Android中應(yīng)用程序并不是直接同PowerManagerService交互的,而是通過(guò)PowerManager間接地與PowerManagerService打交道。
此文件定義了一個(gè)powermanager類.
? 主要實(shí)現(xiàn)了
? ? ? 1,wakelock的申請(qǐng)與釋放
? ? ? ? ? public WakeLock newWakeLock(int flags, String tag)
? ? ? 2,系統(tǒng)延時(shí)進(jìn)入休眠
? ? ? ? ? public void userActivity(long when, boolean noChangeLights)
? ? ? 3,系統(tǒng)強(qiáng)制休眠
? ? ? ? ? public void goToSleep(long time)
? ? ? 4,屏幕亮度設(shè)置
? ? ? ? ? public void setBacklightBrightness(int brightness) ?
? ? ? 5,屏幕狀態(tài)查詢
? ? ? ? ? public boolean isScreenOn()
? ? ? 6,系統(tǒng)重啟
? ? ? ? ? public void reboot(String reason)
細(xì)節(jié)
? wakelock的申請(qǐng)與釋放
? ? ? {@samplecode
? ? ? ? ? *PowerManager pm = (PowerManager)mContext.getSystemService(
? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Context.POWER_SERVICE);
? ? ? ? ? *PowerManager.WakeLock wl = pm.newWakeLock(
? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PowerManager.SCREEN_DIM_WAKE_LOCK
? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| PowerManager.ON_AFTER_RELEASE,
? ? ? ? ? * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?TAG);
? ? ? ? ? *wl.acquire();
? ? ? ? ? * // ...
? ? ? ? ? *wl.release();
? 一共有如下幾個(gè)flag來(lái)進(jìn)行不一樣的喚醒方式.可以根據(jù)需要設(shè)置
? ? ? ? ? Flag Value ? ? ? ? ? ? ? ? ? CPU ? ? Screen ? ? ?Keyboard
? ? ? ? ? PARTIAL_WAKE_LOCK ? ? ? ? ? ?On* ? ? ?can-off ? ? ?Off
? ? ? ? ? SCREEN_DIM_WAKE_LOCK ? ? ? ? On ? ? ? Dim ? ? ? ? ?Off
? ? ? ? ? PROXIMITY_SCREEN_OFF_WAKE_LOCK on ? ? ?距離傳感器時(shí)關(guān)閉 ?off
? ? ? ? ? SCREEN_BRIGHT_WAKE_LOCK ? ? ?On ? ? ? Bright ? ? ? Off
? ? ? ? ? FULL_WAKE_LOCK ? ? ? ? ? ? ? On ? ? ? Bright ? ? ? Bright
? ACQUIRE_CAUSES_WAKEUP ? ? ? ?確保wakelock,主要用于視頻播放器
? ON_AFTER_RELEASE = 0x20000000 ? ?release后倒計(jì)時(shí),關(guān)閉屏幕
? ...
userActivity的作用:
使系統(tǒng)從其他狀態(tài)進(jìn)入全部打開(kāi)狀態(tài),比如從暗屏(dim)切換到亮屏,并重置倒計(jì)時(shí)計(jì)數(shù)器
java中關(guān)閉當(dāng)前窗口用什么代碼
setDefaultCloseOperation(JFrame.EXIT_ON_CLOES)會(huì)讓整個(gè)程序都退出
JFrame.DISPOSE_ON_CLOSE只讓當(dāng)前的窗口關(guān)閉而已
java中有清屏指令嗎
1、編寫(xiě)一個(gè)類ClearScreen.java,代碼如下:
public class ClearScreen{
//實(shí)現(xiàn)清屏方法的接口
public native static void clearScreen();
//加載dll文件
{
System.loadLibrary("Clear");//Clear 生成dll的文件名
}}
2、編譯ClearScreen類
命令行環(huán)境下執(zhí)行 javac ClearScreen.java - ClearScreen.class
3、生成一個(gè)C的頭文件,java里面提供一個(gè)工具javah
命令行環(huán)境下執(zhí)行
javah ClearScreen - ClearScreen.h
4、編寫(xiě)ClearScreen.cpp(c文件)實(shí)現(xiàn)native方法clearScreen(),代碼如下:
#include jni.h
#include "ClearScreen.h"
#include stdlib.h
//這里兩個(gè)ClearScreen 對(duì)應(yīng)·······1步驟里的java類名和方法名
JNIEXPORT void JNICALL Java_ClearScreen_clearScreen(JNIEnv *, jclass){
system("cls");
}
5、安裝一個(gè)microsoft compiler 編譯ClearScreen.cpp,得到Clear.dll //我這里用到的是Microsoft Visual Studio
注意:將Jdk安裝環(huán)境include目錄下的jawt_md.h jni_md.h jni.h三個(gè)頭文件copy到 Microsoft Visual Studio的
include目錄下
6、調(diào)用
注意:將生成的dll文件與ClearScreen類放在同一文件夾
(new ClearScreen()).clearScreen();
Java中有什么代碼是可以清屏?。??
要java在windows下的cmd下實(shí)現(xiàn)清屏,唯一的方案,就是通過(guò)JNI調(diào)用一個(gè)庫(kù)文件(.dll),這個(gè)dll中包含一個(gè)實(shí)現(xiàn)清屏功能(system(“cls”))的導(dǎo)出函數(shù)。
在java程序中加入代碼調(diào)用這個(gè)庫(kù),即可實(shí)現(xiàn)當(dāng)前屏幕的清屏。
實(shí)現(xiàn)步驟:
1.寫(xiě)一個(gè)dll.h
#ifndef _Included_Cls
#define _Included_Cls
#ifdef __cplusplus
extern "C"
{
#endif
JNIEXPORT void JNICALL Java_Cls_clear
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
2.再寫(xiě)一個(gè)dllmain.c
#include "jni.h"
#include "dll.h"
#include "stdlib.h"
JNIEXPORT void JNICALL Java_Cls_clear(JNIEnv *env, jobject obj)
{
system("cls");
}
3.用vc++建立一個(gè)dll工程(我的工程名為clsTest)
導(dǎo)入dllmain.c 和dll.h以及jdk下include目錄下的jni.h和include/win32下的jni_md.h 共四個(gè)文件
然后build 這個(gè)dll工程,將生成的clsTest.dll放入到你的java.library.path中的其中一個(gè)目錄下
查看java.libray.path用代碼System.out.print(System.setProperty("java.library.path","."));
我是根據(jù)我的配置將clsTest.dll放到C:/Program Files/Java/jdk1.6.0/jre/bin下
4.測(cè)試
新建一個(gè)測(cè)試類Test.java
public class Test{
public native void clear();//左方的native是通知Java這個(gè)函數(shù)會(huì)使用到外部函數(shù)
static {
System.loadLibrary("clsTest"); //左方的代碼代表我要載入clsTest.dll的動(dòng)態(tài)鏈接
}
public static void main(String[] args) {
final Test a=new Test();
Runnable k=new Runnable(){
public void run(){
for(int i=0;i20;i++){
System.out.println(i);
try {
Thread.sleep(1000);
a.clear();
} catch (Exception e) {
}
}
}
};
k.run();//執(zhí)行線程
}
}
5.在cmd下 javac Test.java
java關(guān)閉當(dāng)前窗口代碼
方法一:
類 JFrame
javax.swing.JFrame
JFrame中的方法void setDefaultCloseOperation(int)可以設(shè)置
以下為改方法的用法:
setDefaultCloseOperation
public void setDefaultCloseOperation(int operation)設(shè)置用戶在此窗體上發(fā)起
"close" 時(shí)默認(rèn)執(zhí)行的操作。必須指定以下選項(xiàng)之一:
DO_NOTHING_ON_CLOSE(在 WindowConstants 中定義):不執(zhí)行任何操作;要求程序在已注冊(cè)的
WindowListener 對(duì)象的 windowClosing 方法中處理該操作。
HIDE_ON_CLOSE(在 WindowConstants 中定義):調(diào)用任意已注冊(cè)的 WindowListener
對(duì)象后自動(dòng)隱藏該窗體。
DISPOSE_ON_CLOSE(在 WindowConstants 中定義):調(diào)用任意已注冊(cè) WindowListener
的對(duì)象后自動(dòng)隱藏并釋放該窗體。
EXIT_ON_CLOSE(在 JFrame 中定義):使用 System exit
方法退出應(yīng)用程序。僅在應(yīng)用程序中使用。
默認(rèn)情況下,該值被設(shè)置為 HIDE_ON_CLOSE。更改此屬性的值將導(dǎo)致激發(fā)屬性更改事件,其屬性名稱為
"defaultCloseOperation"。
注:當(dāng) Java 虛擬機(jī) (VM) 中最后一個(gè)可顯示窗口被釋放后,虛擬機(jī)可能會(huì)終止
要實(shí)現(xiàn)你說(shuō)的,應(yīng)該采用
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
方法二:
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Test extends JFrame {
public Test(){
this.setTitle("title");
this.setSize(300,200);
this.setLocation(100,100);
//設(shè)置關(guān)閉時(shí)什么也不做
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
//監(jiān)聽(tīng)關(guān)閉按鈕的點(diǎn)擊操作
this.addWindowListener(new WindowAdapter(){
//new 一個(gè)WindowAdapter 類 重寫(xiě)windowClosing方法
//WindowAdapter是個(gè)適配器類 具體看jdk的幫助文檔
public void windowClosing(WindowEvent e) {
//這里寫(xiě)對(duì)話框
if(JOptionPane.showConfirmDialog(null,
"退出","提
示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION){
System.exit(0);
}
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
分享標(biāo)題:java熄屏代碼,java中的清屏代碼
當(dāng)前鏈接:http://www.xueling.net.cn/article/phcpoi.html