私は、アクティビティを開始しているSDK(支払いや広告やウェブビューを開くアプリのライブラリなど)を使用しています。どのようにSDKで起動されたこのアクティビティのビューインスタンスを取得できますか?他のSDKによって公開されている現在の可視アクティビティの表示を取得する
私が知っている1つの方法は、ActivityLifeCycleCallbacksを使用することです。しかし、これを得るための他の簡単な方法はありますか?
私は、アクティビティを開始しているSDK(支払いや広告やウェブビューを開くアプリのライブラリなど)を使用しています。どのようにSDKで起動されたこのアクティビティのビューインスタンスを取得できますか?他のSDKによって公開されている現在の可視アクティビティの表示を取得する
私が知っている1つの方法は、ActivityLifeCycleCallbacksを使用することです。しかし、これを得るための他の簡単な方法はありますか?
できません。 Androidは安全なシステムで、アクセスしないでください。
別のアプリの場合は、ビューやJavaオブジェクトのようなものには直接アクセスせず、全くアクセスしない独立したプロセスとして起動されます。アプリ開発者のドキュメントに従って、渡す必要があるすべてのデータをIntent
に渡し、必要に応じて応答を待つ必要があります。
ライブラリの場合、閉じたコンポーネントとして扱われるため、ライブラリによって開かれたActivities
にアクセスすることはできません。開発者がそれを可能にする何らかのインタフェースを作成した可能性はありますが、これを行う標準的な方法はありません。
回避方法が1つあります: ライブラリがオープンソースの場合は、リポジトリを複製してアプリケーションにローカルでコードを追加することができます。この方法で、コンポーネントを編集してコンポーネントにアクセスできるようになります。 これは、支払いや広告などの安全なものではおそらく機能しません。
ここでも、ちょうどあなたがSDKによって、正確に何を意味する
:-)善良な市民であること、開発者が提供するマニュアルに従ってください?図書館?インテントを使って起動した別のアプリですか? – Kelevandos
支払いや広告、ウェブビューを開くアプリなどのライブラリ – Vikash