-2
일부 메소드를 실행했을 때, 시간에 의해 자동적으로 갱신 가능한 어플리케이션을 만들고 싶습니다. Handler를 사용하여 시간에 따라 자동으로 업데이트되도록했습니다. 시간이 지나면 데이터가 firebase로 업데이트됩니다. 앱이 닫히지 않아도 작동 할 수 있습니다. 하지만 내가 지정한 업데이트 시간 전에 응용 프로그램을 닫으면 처리기가 작동하지 않습니다. 응용 프로그램을 계속 실행하는 서비스를 사용했지만.Java로 어플리케이션이 닫혀 있어도, Handler를 항상 실행하는 방법
는 지금까지 내 코드입니다 :
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return super.onStartCommand(intent, flags, startId);
}
}
내가 당신의 도움이 필요하세요 Myservice.java
AutoUpdate.java
public class AutoUpdate extends AppCompatActivity {
TextView textDateTime;
TextView textcurrentDateTime;
DatabaseReference mDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_update);
String currentDate = DateFormat.getDateTimeInstance().format(new Date());
textcurrentDateTime.setText(currentDate);
final Handler handler=new Handler();
final Runnable updateTask=new Runnable() {
@Override
public void run() {
updateCurrentTimeToFirebase();
handler.postDelayed(this,7000);
handler.removeCallbacks(this);
}
};
handler.postDelayed(updateTask,7000);
startService(new Intent(this, MyService.class));
}
public void updateCurrentTimeToFirebase() {
String currentDate = DateFormat.getDateTimeInstance().format(new Date());
mDatabase = FirebaseDatabase.getInstance().getReference();
String id = mDatabase.push().getKey();
mDatabase.child("autoUpdate").child(id).child("updateTime").setValue(currentDate);
}
}
.. 감사합니다 많이 ..
오히려 처리기를 사용하는 것보다, 실행하는 백그라운드 서비스를 사용 모든 시간 –
서비스 사용시 onStartCommand()의 인스턴트 온타리오 응답 확인 onStart() –