Android 用のマップ レンダリング アプリケーションを開発しています。地図データは約1.1Gbとかなり大きいです。.apk のサイズには市場と携帯電話の両方に制限があるため、アプリケーションの起動時にダウンロードすることをお勧めします。
これは私が現在使用しているパターンです:
1. メイン アクティビティ (マップのレンダリングに使用) は、データが利用可能かどうかを確認し、そうでない場合はダウンロード アクティビティを開始します
2. ダウンロード アクティビティはローカル サービスを開始します
3. サービスは zip ファイルをダウンロードします4.
サービスはイベントをダウンロード アクティビティと通知に送信します。
電話とネットワークによっては、プロセス全体に 30 分から数時間かかる場合があるため、サービスを生成します。
しかし、プログラムのインスタンスが 1 つしか実行されていないことを確認するのに苦労しています。launchmode プロパティのすべての組み合わせを試してみましたが、役に立ちませんでした。
ご存じのとおり、実行中の 2 つのインスタンスはダウンロード/解凍をクラッシュさせます。
これは本当にイライラします!現在、sdcardファイルロックへの醜い読み取り/書き込みを行っており、ほとんどの場合、1つのインスタンスのみが実行されていることを確認しています。
Android 1.6以降を対象としています。