2017-03-24 4 views
-2

私は2つのAndroidアプリ「A」と「B」を持っています。Androidでコントロールアプリを実行する

'B'がメソッド 'x'を実行しようとすると、 'A'は事前テストを行わなければならず、 'B'がこのメソッドを実行できるかどうかを決定します。

「B」アプリを変更しない(「A」へのメソッド呼び出しを含まない)ソリューションを必要とします。

例: 'B'が重い計算方法を実行しようとすると、ローカルまたはリモートで実行するために 'A'からの許可が必要です。

+1

2つのアプリがあなたのコントロール下にある場合は、ブロードキャストを使用できます。 Aは何かしたい放送を送る。そして、Bはそれを受け取り、受け入れ可能か否かを放送します。 Aはブロードキャスト応答を受信する。私はあなたがBを変更したくないことを理解しています。その場合は不可能です。別のアプリをハックするだけでは問題ありません。 – Doomsknight

+0

BのようなVisitorパターンの最小変更はどうですか? @Doomsknight –

答えて

2

これはできません。それは可能でもありません。

"B"を変更したくない場合は、いつでも他のアプリがコードの一部を実行しないようにすることができます。これは、Androidセキュリティ/特権システムの完全な違反になります。

あなたができることは、この機能を実行する必要がある場合、 "B"が自分自身を決定することです。そして、それが非常に労働集約的であることが判明した場合、「B」がこの操作をサービスとしてバックグラウンドで実行させる。

"B"に小さな変更を加えたい場合は、それが可能になります。 "B"が "A"にインテントを送って、事前テストを依頼します。次に、結果に応じて "A"から取得し、関数を実行するかどうかを決定します。

+0

BのようなVisitorパターンの最小変更はどうですか? –

+0

@AbderahmaneMansouri訪問者は、通常、1つのプログラム内で使用されます。しかし、Bへの最小限の変更で、あなたはそのことを行うことができます。 Aを対象とするインテントを使用すると、インテントの結果に応じて、Bはメソッドを実行するかどうかを決定できます。 –

+1

おかげでたくさんの男@ S.L。バース –

関連する問題