外部イベントがGPIOの1つをトリガーしたときにユーザーにダイアログを表示することになっているAndroid 2.1アプリを書いています。Linux デバイス ドライバーを作成し、JNI ユーザー空間インターフェイスを作成しました。アプリが起動すると、デバイス ドライバーをポーリングするリモート サービスが起動します。aidl を使用して、アクティビティとサービスの間で通信を行うことができましたが、アクティビティを閉じるときに、サービスにアクティビティを再起動してもらいたいと考えています。次のコードを使用してそれを達成しました:(サービス内)
Intent dialogIntent = new Intent(getBaseContext(),WiegandDemoActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(dialogIntent);
その直後に、aidl を使用して通信したいので、以下を使用しました。
synchronized (listeners) {
for (WiegandListener listener : listeners) {
try {
listener.handleWiegandUpdated();
...
アクティビティは前面に出されますが、援助メッセージは届きません。なぜそれが起こっているのですか?(アクティビティが前面にある場合、すべて正常に動作します)
コードが大きいため、ここにすべてのコードを掲載したくはありませんが、さらに情報が必要な場合は、お気軽にお問い合わせください。
ありがとう。