8

ユーザーが乗っている間にデータを記録するバイク コンピューター アプリがあります。私が考慮していなかった問題をユーザーに報告してもらいました。彼は長時間のライド (100 マイル以上) に出かけていましたが、外出中にデータをログに記録している間に、Google Play の自動更新によってアプリが更新されました。残念ながら、これによりアプリの途中で記録が停止し、何が起こったのかを発見してアプリを再起動するまで、ユーザーはデータを失いました。

理想的には、アプリがデータを記録している間に発生する自動更新をプログラムで停止できるようにしたいと考えています。私のすべての調査では、これは不可能であることが示されていますが、何かを見逃している可能性があるので、誰かがこれを行う方法を知っていますか?

解決策がない場合、私ができる最善の方法は、この場合に役立つ Play アプリのwifi オプションのみで更新を有効にするようユーザーにアドバイスすることです。残念ながら、私のアプリの重要なポイントの 1 つは、ANT+ センサーを使用して屋内セッションを記録するため、Wi-Fi がアクティブな状態で多くの人が使用していることです。

編集

昨夜自分で何が起こるかを確認するために、なんとか実験を行うことができました。バックグラウンドでデータをログに記録するアプリを作成し、新しいバージョンを Google Play にプッシュしました。残念ながら、10時間後に出発しなければならなかったときに完全に自動的に取得されませんでしたが、プレイストアアプリを開いたところ、更新が自動的に開始されなかったことがわかりましたが、強制的に更新しました. 新しいバージョンをダウンロードしてインストールする行為は、進行中のものを殺しました。通知を使用して新しいバージョンに移動する前に、それはすでに死んでいました。

4

1 に答える 1

1

あなたが自分で言うように、あなたはあなたが求めていることをすることはできません. 更新するたびに権限を変更することで、ハッキングすることができます。その後、ユーザーは通常の方法でそれについて尋ねられます。

実行中の自動更新アプリの「ライフサイクル」についてはわかりません。しかし、再インストールではなく、アプリをクラッシュさせたアプリの再起動であるとどこかで読みました。その場合は、ユーザーが現在ログを記録していることを示すフラグを設定し、再起動時にログを再開することができます。しかし、ここでも、実行中のアクティビティやアプリの内部動作について詳しく知る必要があり、自動更新が行われます (実際には、それが起こるとは考えていませんでした)。

編集

あなたの調査結果に基づいて、アプリが onDestroy などでシャットダウンされていることを処理する必要があると思います。または、すべてを永続的に保存するようにしてください。次に、2 つのアプリが必要になる場合があります。1 つは、もう 1 つの再インストールをリッスンし、それが発生すると、再び起動します (興味深い議論がここにあります)。API >= 12 をターゲットにしている場合は、ブロードキャスト アクションACTION_MY_PACKAGE_REPLACEDにも関心がある可能性があります。

于 2012-11-07T12:23:02.670 に答える