9

圧倒的なユーザーの苦情のため、公式ドキュメントに従って、AndroidアプリケーションのユーザーがSDカードに移動できるようにすることにしました。ただし、私のアプリケーションのコア機能では、バックグラウンドサービスを継続的に実行する必要があります。私のアプリをSDカードに移動した人が何らかの理由でSDカードをマウントすると、私のバックグラウンドサービスが停止します。

最初に利用可能な機会にサービスを再開できる限り、それは私にとってはすべて大丈夫です。残念ながら、インストール場所ガイドでは、ブロードキャストインテントACTION_EXTERNAL_APPLICATIONS_AVAILABLEを使用して、SDカードがローカルに再マウントされたことを検出できると主張していますが、そのフラグ自体のドキュメント、このニュースグループのディスカッション、および私自身のテストでは、このブロードキャストがアプリケーションに配信されないことが示されています利用可能になります。SDカードに移動されていないアプリケーションのみがブロードキャストインテントを取得します。

SDカードが再マウントされた後にユーザーがアプリを開くのを待たずにバックグラウンドサービスを再開する方法はありますか?

4

1 に答える 1

7

確実ではありません。許可のないブロードキャストIntents(たとえばACTION_SCREEN_OFF)に接続して、最終的に起動し、その方法で制御を取得することができます。ハックボーンさんが指摘しているように、正しい答えはACTION_EXTERNAL_APPLICATIONS_AVAILABLE修正されることです。また、外部アプリケーションが利用可能になる前に、 SDカード関連のブロードキャストが発生するかどうかもわかりますが(たとえばACTION_MEDIA_MOUNTED)、外部アプリケーションが利用可能になる前にすべてが通過したと思います。

于 2010-10-19T01:22:01.690 に答える