androidベース-まとめ

3069 ワード

activity


ライフサイクル:ライフサイクルを把握するいくつかの方法、ここでは述べないで、分からないならば検索資料はAジャンプBを掌握して、ライフサイクル方法の実行順序
起動モード
  • standard標準起動モードであり、activityのデフォルト起動モードでもある.このモードで起動したactivityは、同じタスクに複数のactivityのインスタンスが存在し、各インスタンスが1つのIntentオブジェクトを処理することができるように、複数回インスタンス化することができる.
  • singleTop singleTopモードで起動したactivityのインスタンスがすでにタスクスタックのスタックトップに存在する場合、このActivityを再起動すると、新しいインスタンスは作成されず、スタックトップにあるそのインスタンスを再利用し、そのインスタンスのonNewIntent()メソッドを呼び出してこのインスタンスにIntentオブジェクトを渡します.
  • singleTask activityの起動モードがsingleTaskである場合、システムは常に新しいタスクの最下部(root)でこのactivityを起動し、このactivityによって起動された他のactivityはこのactivityと同時にこの新しいタスクに存在する.システムにすでにこのようなactivityが存在する場合、このインスタンスは再利用され、onNewIntent()メソッドが呼び出されます.すなわち、このようなactivityは、システムに1つのインスタンスしか存在しない.
  • singIeInstanceは常に新しいタスクで開始され、この新しいタスクにはこのインスタンスがあり、つまりインスタンスによって起動された他のactivityが自動的に別のタスクで実行される.activityのインスタンスを再起動すると、既存のタスクとインスタンスが再利用されます.このインスタンスのonNewIntent()メソッドが呼び出され、そのインスタンスにIntentインスタンスが渡されます.singleTaskと同様に、同じ時点でシステムにはこのようなActivityインスタンスが1つしか存在しません.

  • service

  • コンセプト:`Serviceは、ユーザーインタフェースを提供することなく、バックグラウンドで長時間実行できるアプリケーションコンポーネントです.サービスは、他のアプリケーションコンポーネントによって開始され、ユーザーが他のアプリケーションに切り替えてもバックグラウンドで実行されます.
  • の2つの形式:起動:アプリケーションコンポーネント(Activityなど)がstartService()`を呼び出してサービスを起動すると、サービスは「起動」状態になります.起動すると、サービスはバックグラウンドで無期限に実行され、サービスを起動したコンポーネントが破棄されてもバインドに影響しません.アプリケーションコンポーネントがbindService()を呼び出してサービスにバインドされると、サービスは「バインド」状態になります.呼び出し者はサービスと共生して死ぬ.
  • 重要な方法onStartCommand別のコンポーネント(Activityなど)が[startService()]を呼び出してサービスを開始すると、システムはこの方法を呼び出す.onBind()別のコンポーネントが[bindService()を呼び出してサービスにバインドしたい場合(例えばRPCを実行する場合)、システムはこの方法を呼び出す.

  • BroadcastReceiver(ブロードキャスト)
    Android apps can send or receive broadcast messages from the Android system and other Android apps;android appは、システム間またはアプリケーション間でブロードキャストを送信または受信することができる.
    2つの登録形式:静的登録、動的登録静的登録はリストファイルに登録され、この形式は常駐し、持続的な動的登録はコードに書き込まれ、優先度が高く、ブロードキャストの登録と破棄を動的に管理することができる.2つのタイプ:標準ブロードキャストと秩序標準ブロードキャストは非同期で、無秩序で、送信後すぐに受け入れられます.sendBroadcast()メソッドを使用します.秩序化ブロードキャストは秩序化され、sendOrderBroadcast()メソッドを使用して、複数の情報が同時に送信されると、送信情報が整列します.LocalBroadcastManagerもブロードキャストであり、主にappプログラムの内部で使用され、内部実装は単一のモードである.相対的にBroadcastReveiverは安全で効率的です.そこで、このブロードキャストの使用方法を最初に使用します.
    // 
    LocalBroadcastManager.getInstance(Context context).registerReceiver(BroadcastReceiver receiver, IntentFilter filter);
    // 
    LocalBroadcastManager.getInstance(Context context).sendBroadcast(Intent intent);
    // 
    LocalBroadcastManager.getInstance(this).unregisterReceiver(BroadcastReceiver receiver);
    

    handler looper message messageQueue


    handlerは主にスレッド間通信に用いられ,サブスレッド処理に時間がかかり,主スレッドにLooperが主にメッセージキューをループ処理するメッセージ体を更新することを通知する.Activity Threadが起動すると、UIスレッドのhandlerとLooperがデフォルトでロードされます.Messageは送信されるメッセージボディであり、messagequeueはチェーンテーブル構造のメッセージキューである.Messageは伝送するオブジェクトのキャリアである.

    キャッシュ--メモリキャッシュ-ディスクキャッシュ


    キャッシュはデータを保持するメカニズムです.なぜキャッシュを使うのですか?アプリケーションの実行中に、より良い体験、より速い展示のために、キャッシュデータを使用して、ネットワークや画像を複数回要求したり、パフォーマンスの低下を回避したりする必要があります.
    Androidではどのようなキャッシュメカニズムが使われていますか?常用メモリパフォーマンス最適化メモリ漏洩イベント配布
    単利モードmvpモードmvcモード