インテントを使用してアクティビティを開始する理由なぜ新しいキーワードを使用してアクティビティを作成できないのですか?
なぜアクティビティa = newアクティビティを使用して起動できないのですか?
私は、Androidの開発者で検索を試みたが、あなたはできる限り答え
インテントを使用してアクティビティを開始する理由なぜ新しいキーワードを使用してアクティビティを作成できないのですか?
なぜアクティビティa = newアクティビティを使用して起動できないのですか?
私は、Androidの開発者で検索を試みたが、あなたはできる限り答え
を取得していないが、それは完全に初期化されません。アクティビティには、正しく初期化するために正しい順序で呼び出される必要がある一連の関数と、アクティビティを表示するためにフレームワークが実行する一連の手順があります。 startActivityを呼び出すと、それらのステップが実行され、アクティビティライフサイクル関数が正しい順序で呼び出されます。したがって、新しいものを使用する理由はありません。
これを別の方法で見ると、あなたはアクティビティa = new Activity()を実行するとします。 OSはあなたがそれをしたことをどのように知っていて、そのアクティビティを表示するはずですか?アクティビティが現在フォアグラウンドに入るはずであることは、どのようにわかりますか?そうではありません。新しいアクティビティが開始されたことを伝える必要があります。そのため、startAcctivityが存在します。とにかくそれを呼び出さなければならないので、それをファクトリメソッドにするだけではないので、初期化と起動は1つのステップですか?
キーワードnew
を使用してアクティビティオブジェクトを作成できるだけでなく、レイアウト/サブビューを拡張して起動することもできます。
しかし、上記の実装方法は非常に面倒でエラーが発生しやすいです。通常のAndroidアプリの開発を扱っている場合はお勧めできません。
https://github.com/singwhatiwanna/dynamic-load-apk
https://github.com/didi/VirtualAPK
https://github.com/DroidPluginTeam/DroidPlugin
これらのプロジェクトをロードし、外部活動を起動することを目指して:あなたは、それがどのように行われるかに興味があるこれらのgithubのプロジェクトを見ている場合は
/アンインストールされたapkファイルのサービス。彼らが実装する方法の1つの小さな側面は、new
でアクティビティを作成することです。
これは、活動の良い仕事の有益な情報を呼び出すときに何が起こっているかについての素敵な説明です。 –