私の活動がまだ遅れているのは混乱しています。私はいくつかの方法があり、それぞれがダウンロードしたり、データを処理したり、物事を比較したりといった独自の作業をしているリモートサービスを使用しています。選択した間隔で通知し、通知システム上の変更をユーザーに通知します。serviceとhandler.postメソッドでstuffを実行しても、私のアクティビティはまだ遅れていますか?
私は最終的にウィジェットを追加し、アンドロイドがアクティビティを殺したとしてもサービスは実行を継続する必要があるため、各onPause()でバインドを解除します。 しかし、私はその部分が私の問題を引き起こさないことを理解しています。
しかし私の問題に戻って...サービスとhandler.postメソッドを実行すると、私の活動はまだ遅れています。
public class WarnService extends Service {
private Bitmap pic;
private boolean dataUpToDate;
private void loadData(){
//code that downloads new data and sets the dataUpToDate variable
}
private void updateLayer(Bitmap bt){
//code that updates some stuff if downloaded and local data differ
}
private IWarnService.Stub WServiceStub = new IWarnService.Stub() {
@Override
public void refreshData() throws RemoteException {
serviceHandler.post(new Runnable() {
@Override
public void run() {
loadData();
if(!dataUpToDate){
updateLayer(pic);
}
}
});
}
}
}
また、私は活動を通じてupdateLayer(...)で更新されるprogressDialogを追加したいこのサービスへのリスナーですが、うまく機能していないthatsの。ここに
はコードがあります。 progressDialogを更新するにはどうすればよいですか?これまでリスナー、ハンドラ、インテント、または何ですか?
これを正しく行うにはどうすればよいですか?
私はProcess.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND)を追加しました。 run()には何も変わりません。私のメソッドがまだGUIスレッドで動作していることは確かです。 – danizmax