360携帯電話の衛士が話しています.サービスに最高の権限を与えます.

3352 ワード

最近来て、私は360の携帯電話の衛士を倒した時、あなたは彼のデータを空にしても、それを強制的に停止しても、それをアンインストールしても、そのサービスはAndroidのシステムに乾かされていないことに気づいて、依然として揺れ動いていません.私は退屈して、それから群の中の大牛と討論した後、360携帯電話の衛士が本当にごろつきであることを知っていて、それは第三者の応用に頼って、360携帯電話の衛士はそれを開きます.これは、今日の話題を引き出して、サービスの再起動方法を話して、最高の権限を得ました.
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にはラベルで登録を宣言し、ラベル内にラベルでフィルタを設定します.方式2は、コードの中で1つのIntentFilterオブジェクトを動的に定義して設定し、登録が必要な場所でContextを調整する.registerReceiver()メソッドは、キャンセルするとContextを呼び出す.unregisterReceiver()メソッド.動的に登録されたBroadcastReceiverのContextオブジェクトが破棄されると、BroadcastReceiverは自動的に登録をキャンセルします.
対応する例は次のとおりです.
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つの方法で、皆さんは収穫があるかどうか、フィードバックしてください.