Android Context POWERについてSERVICEの実用化
一、Contextコンテキストの概念
Contextの一般性は、リソースのロード、新しいActivityの起動、システム・サービスの取得、内部ファイル(クリップ)パスの取得、View操作の作成などに必要です.Contextとは何なのか、Contextの文字通りの意味コンテキスト、あるいはシーンと呼ばれています.つまり、ユーザーがオペレーティングシステムと操作するプロセスです.例えば、電話をかけるなど、シーンには電話プログラムに対応するインタフェースや、背後に隠されたデータが含まれています.しかしプログラムの角度でContextは何ですか?プログラムの角度で、私達は比較的に権威のある答えがあって、Contextは抽象的なクラスです.
Activity、Service、ApplicationはいずれもContextのサブクラスである.
つまり、Androidシステムの観点から、Contextはオペレーティングシステムとのインタラクションのプロセスを表すシーンであることを理解します.プログラムの観点から、Contextは抽象クラスであり、Activity、Service、Applicationなどはそのクラスの実装である.
二、Context POWERについてSERVICEの実用化
1、AndroidManifest.xmlのアプリケーションに追加
android:name="packagename.MyApplication"
2、MyApplicationを作成する.java
public class MyApplication extends Application { public static Context context;
@Override
public void onCreate(){ context = getApplicationContext() }\
public static Context getcontext(){
return context;
}
}
3、サードパーティクラス(ここで定義するのはSuspendHandlerクラス)でPOWER_を使用するSERVICE
SuspendHandlerクラスでsuspendDevice()メソッドを定義します.
4、Activityでこのメソッドを呼び出す
SuspendHandler.suspendDevice(this);
Contextの一般性は、リソースのロード、新しいActivityの起動、システム・サービスの取得、内部ファイル(クリップ)パスの取得、View操作の作成などに必要です.Contextとは何なのか、Contextの文字通りの意味コンテキスト、あるいはシーンと呼ばれています.つまり、ユーザーがオペレーティングシステムと操作するプロセスです.例えば、電話をかけるなど、シーンには電話プログラムに対応するインタフェースや、背後に隠されたデータが含まれています.しかしプログラムの角度でContextは何ですか?プログラムの角度で、私達は比較的に権威のある答えがあって、Contextは抽象的なクラスです.
Activity、Service、ApplicationはいずれもContextのサブクラスである.
つまり、Androidシステムの観点から、Contextはオペレーティングシステムとのインタラクションのプロセスを表すシーンであることを理解します.プログラムの観点から、Contextは抽象クラスであり、Activity、Service、Applicationなどはそのクラスの実装である.
二、Context POWERについてSERVICEの実用化
1、AndroidManifest.xmlのアプリケーションに追加
android:name="packagename.MyApplication"
2、MyApplicationを作成する.java
public class MyApplication extends Application { public static Context context;
@Override
public void onCreate(){ context = getApplicationContext() }\
public static Context getcontext(){
return context;
}
}
3、サードパーティクラス(ここで定義するのはSuspendHandlerクラス)でPOWER_を使用するSERVICE
SuspendHandlerクラスでsuspendDevice()メソッドを定義します.
public static void suspendDevice() {
PowerManager pm = (PowerManager)MyApplication.getContext().getSystemService(Context.POWER_SERVICE);
try {
Method e = pm.getClass().getDeclaredMethod("goToSleep", new Class[]{Long.TYPE, Integer.TYPE, Integer.TYPE});
e.setAccessible(true);
e.invoke(pm, new Object[]{Long.valueOf(SystemClock.uptimeMillis()), Integer.valueOf(0), Integer.valueOf(0)});
} catch (NoSuchMethodException var3) {
var3.printStackTrace();
} catch (InvocationTargetException var4) {
var4.printStackTrace();
} catch (IllegalAccessException var5) {
var5.printStackTrace();
}
}
4、Activityでこのメソッドを呼び出す
SuspendHandler.suspendDevice(this);