私の一般的な質問は、バックグラウンドサービスを「INTERVAL」ごとに実行し、ANRメッセージを取得しない方法です(スレッドを開始してジョブを実行するalarmManagerから呼び出されるサービスを作成しようとしました)?助けてくれてありがとう!
より具体的に:
DropBox のようなアプリケーションを作成しています - ローカル フォルダを他の Android 携帯と共有するようにします。
このアプリケーションはバックグラウンドで実行する必要があります。
また、サーバーにアップロードするためにローカルディレクトリに作成された新しいデータがあるかどうかを確認するために、一定の時間間隔で実行する必要があります。
私のアプリケーションは一般に、 PsudoCode で次のシーケンスを実行します。
1) AlarmManager.setInexactRepeating(MySerVice)
2) (when the service is being called) DecideWhichFileToUploadOrDownload()
3) UploadNewFiles() DownloadNewFiles()
問題はステージ 3 にあることを知っています。アップロード/ダウンロードに 10 秒以上かかると、ANR メッセージが表示されます (または、アプリケーションが強制終了されます)。 . アップロード/ダウンロードを行うスレッドを作成しようとしましたが、サービスが終了すると Android がスレッドを強制終了します。