Android初級第八講の応用はどのように生存します

2637 ワード

この文書はhttp://blog.csdn.net/liuxian13183/ ,引用は出典を明記しなければならない!
一般に、アクティブ化が適用されるシーンは、バックグラウンドが明確な軌跡を絶えず位置決めして記述し、IM通信がメッセージ通知をタイムリーに受信する必要があるなどである.
保活とはアプリケーションに殺されることを避けることであり、フロントアプリケーションはもちろん、主にバックグラウンドアプリケーションである.Androidの応用優先度は-16から15であり、システムプロセスは一般的に-16から-1の優先度を持っているが、一般的な応用は0-15の優先度しか持っていないことを知っている.レベルが小さいほど優先度が高くなります.
まずバックグラウンドに入る応用はごろつきプロセスではなく、例えば周波数の位置決め、ネットワーク要求の送信、スクリーンの閉鎖を許さないなどである.心拍数をする場合は、適切な周期、例えば2分に1回、socket長連を行う必要があります.フロントプロセスとバックグラウンドプロセスを設計し、互いに監視して相手を再起動することができる.少なくとも1ピクセルがフロントにあることを維持します.
次に、強制的に生存すれば、90%がプロセスを殺す可能性があります.4.4以前はAlarmManagerのsetRepeatingメソッドで定時的に保存できたが、その後setAndAllWhileIdleメソッドを使用して一定期間集団的に起動することができる.
また、登録通知、例えば起動、時間変動、スクリーン解除、ネットワークスイッチ、メールの受信、電話の入力などを通じて、7.0以降はJobScheduleのApiを使用してループ操作を行い、アクティブ登録ネットワークを介してブロードキャストを切り替えて傍受することができる(プロファイル登録方式は禁止されている)
サービスであればstartForeGroundでサービスをフロントにし、殺すのを避け、閉じるときにstopForeGroundを使って取り除くこともできます.またonStartCommandを書き換えてSTART_に戻るSTICKY、サービスを殺されたら自動的に再起動する
public int onStartCommand(Intent intent, int flags, int startId) {        

return START_STICKY;    

}

そしてWakeLockを通じて権限を申請する必要があります
   ロックの取得:
[java]  view plain
 copy
 
WakeLock mWakeLock=null;  
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);  
/** 
 * PowerManager.PARTIAL_WAKE_LOCK:CPUの動作を維持し、画面とキーボードランプがオフになっている可能性があります 
 * PowerManager.SCREEN_DIM_WAKE_LOCK:CPUの運転を維持し、画面表示を実行しますが、画面が灰色である可能性があります.キーボードランプをオフにすることができます. 
 * PowerManager.SCREEN_BRIGHT_WAKE_LOCK:CPUの運転を維持し、画面がハイライト表示され、キーボードランプをオフにできる 
 * PowerManager.FULL_WAKE_LOCK:CPU運転保持、画面ハイライト表示、キーボードランプハイライト表示 
 * PowerManager.ON_AFTER_RELEASE:ロックが解除されると、しばらく画面が明るくなります. 
 * PowerManager.ACQUIRE_CAUSES_WAKEUP:強制画面点灯 
 */  
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SoundRecorder");  
mKeyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);  
mWakeLock.acquire();  
 
        リリースロック  
[java]  view plain
 copy
 
if (mWakeLock.isHeld()) {  
      mWakeLock.release();  
  } 
Root携帯電話の場合は、アプリケーションのpersistentタグをtrueに設定できます.
結局、このような方法はごろつきで、張小龍が微信に約束したように、人々が使う必要があるので、使い終わったら離す道具であることを望んでいます.
Activityに以下のラベルを設定し、ユーザーが最近のタスクをクリックすると、Appは表示されず、隠す目的を達成します.
android:excludeFromRecents="true"
シマウマ付き走行のユーザー権限に対する要求(主にホワイトリストを設置)
おめでとうございます.最後に新天地を発見しました.いずれにしても、保活の時にユーザーの気持ちを考えて、理性的に保活しなければなりません.
その他、1ピクセルのactivityを起動し、Nativeプロセスをアクティブにし、サービスの保存、サードパーティおよびシステムの公開ブロードキャストの傍受を通知します.
Androidプロセス保活技大全