360携帯電話の衛士が話しています.サービスに最高の権限を与えます.
3352 ワード
最近来て、私は360の携帯電話の衛士を倒した時、あなたは彼のデータを空にしても、それを強制的に停止しても、それをアンインストールしても、そのサービスはAndroidのシステムに乾かされていないことに気づいて、依然として揺れ動いていません.私は退屈して、それから群の中の大牛と討論した後、360携帯電話の衛士が本当にごろつきであることを知っていて、それは第三者の応用に頼って、360携帯電話の衛士はそれを開きます.これは、今日の話題を引き出して、サービスの再起動方法を話して、最高の権限を得ました.
1.サービスのOnDestroyでstartサービスを再起動します.
正規のstopserviceの脱退後、OnDestroyメソッドが呼び出されます.あれ、私たちはこのメソッドの後にstartサービスを呼び出さないわけにはいきません.1つのサービスが殺された後、自分で再起動(再生)できることを保証するには、onDestroy関数にいくつかのコードを加えるだけです.上記の例で説明します.
この方法もあまりよくありません.サービスに伴うメインプロセスを停止した後も、サービスを乾かします.
2.manifestインベントリファイルでサービスが不死になるように構成します.
TRACEから,サービスがonCreate,onStart(onDestroyのTRACEは見られず,実行されたはず)を実行したことを検証できる.サービスが殺されないように(つまり動作が変わらない)XMLの<アプリケーションセグメントの後ろにandroid:persistent=「true」を付ければいい.
この方法も万能ではない.一部の携帯電話では、このサービスを止めることができる.
3.サードパーティアプリケーションstartサービス利用
この方法は万能と言えるが、ユーザーがサードパーティのアプリケーションに依存し、正真正銘のごろつき行為であることを確保しなければならない.
4.Receiverによるアプリケーション
BroadcastReceiverを登録する2つの方法:方法1、Android Manifestで静的です.xmlにはラベルで登録を宣言し、ラベル内にラベルでフィルタを設定します.方式2は、コードの中で1つのIntentFilterオブジェクトを動的に定義して設定し、登録が必要な場所でContextを調整する.registerReceiver()メソッドは、キャンセルするとContextを呼び出す.unregisterReceiver()メソッド.動的に登録されたBroadcastReceiverのContextオブジェクトが破棄されると、BroadcastReceiverは自動的に登録をキャンセルします.
対応する例は次のとおりです.
この方法でサービスを再起動するのも、万全と言えます.
以上がサービスを再起動する4つの方法で、皆さんは収穫があるかどうか、フィードバックしてください.
1.サービスのOnDestroyでstartサービスを再起動します.
正規のstopserviceの脱退後、OnDestroyメソッドが呼び出されます.あれ、私たちはこのメソッドの後にstartサービスを呼び出さないわけにはいきません.1つのサービスが殺された後、自分で再起動(再生)できることを保証するには、onDestroy関数にいくつかのコードを加えるだけです.上記の例で説明します.
public void onDestroy(){
Log.i(TAG,"onDestroy");
.................
Intent localIntent = new Intent();
localIntent.setClass(this, MusicService.class); // Service
this.startService(localIntent);
}
この方法もあまりよくありません.サービスに伴うメインプロセスを停止した後も、サービスを乾かします.
2.manifestインベントリファイルでサービスが不死になるように構成します.
TRACEから,サービスがonCreate,onStart(onDestroyのTRACEは見られず,実行されたはず)を実行したことを検証できる.サービスが殺されないように(つまり動作が変わらない)XMLの<アプリケーションセグメントの後ろにandroid:persistent=「true」を付ければいい.
この方法も万能ではない.一部の携帯電話では、このサービスを止めることができる.
3.サードパーティアプリケーションstartサービス利用
この方法は万能と言えるが、ユーザーがサードパーティのアプリケーションに依存し、正真正銘のごろつき行為であることを確保しなければならない.
4.Receiverによるアプリケーション
BroadcastReceiverを登録する2つの方法:方法1、Android Manifestで静的です.xmlには
対応する例は次のとおりです.
import android.content.BroadcastReceiver;
import android.content.IntentFilter;
IntentFilter ScreenFilter = new IntentFilter();
ScreenFilter.addAction(Intent.ACTION_SCREEN_ON);
registerReceiver(mScreenFilterReceiver, ScreenFilter);
private BroadcastReceiver mScreenFilterReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
freshDetect(); //
}
}
};
この方法でサービスを再起動するのも、万全と言えます.
以上がサービスを再起動する4つの方法で、皆さんは収穫があるかどうか、フィードバックしてください.