私は2つのAndroidアプリ「A」と「B」を持っています。Androidでコントロールアプリを実行する
'B'がメソッド 'x'を実行しようとすると、 'A'は事前テストを行わなければならず、 'B'がこのメソッドを実行できるかどうかを決定します。
「B」アプリを変更しない(「A」へのメソッド呼び出しを含まない)ソリューションを必要とします。
例: 'B'が重い計算方法を実行しようとすると、ローカルまたはリモートで実行するために 'A'からの許可が必要です。
私は2つのAndroidアプリ「A」と「B」を持っています。Androidでコントロールアプリを実行する
'B'がメソッド 'x'を実行しようとすると、 'A'は事前テストを行わなければならず、 'B'がこのメソッドを実行できるかどうかを決定します。
「B」アプリを変更しない(「A」へのメソッド呼び出しを含まない)ソリューションを必要とします。
例: 'B'が重い計算方法を実行しようとすると、ローカルまたはリモートで実行するために 'A'からの許可が必要です。
これはできません。それは可能でもありません。
"B"を変更したくない場合は、いつでも他のアプリがコードの一部を実行しないようにすることができます。これは、Androidセキュリティ/特権システムの完全な違反になります。
あなたができることは、この機能を実行する必要がある場合、 "B"が自分自身を決定することです。そして、それが非常に労働集約的であることが判明した場合、「B」がこの操作をサービスとしてバックグラウンドで実行させる。
"B"に小さな変更を加えたい場合は、それが可能になります。 "B"が "A"にインテントを送って、事前テストを依頼します。次に、結果に応じて "A"から取得し、関数を実行するかどうかを決定します。
BのようなVisitorパターンの最小変更はどうですか? –
@AbderahmaneMansouri訪問者は、通常、1つのプログラム内で使用されます。しかし、Bへの最小限の変更で、あなたはそのことを行うことができます。 Aを対象とするインテントを使用すると、インテントの結果に応じて、Bはメソッドを実行するかどうかを決定できます。 –
おかげでたくさんの男@ S.L。バース –
2つのアプリがあなたのコントロール下にある場合は、ブロードキャストを使用できます。 Aは何かしたい放送を送る。そして、Bはそれを受け取り、受け入れ可能か否かを放送します。 Aはブロードキャスト応答を受信する。私はあなたがBを変更したくないことを理解しています。その場合は不可能です。別のアプリをハックするだけでは問題ありません。 – Doomsknight
BのようなVisitorパターンの最小変更はどうですか? @Doomsknight –