Я пытаюсь получить некоторые значения с помощью jsoup. Я должен принимать каждые 10 секунд значения, потому что значения каждые 10 секунд они обновляются. У меня нет проблем с эмулятором, но мое реальное устройство каждые 10 или 20 минут выдает мне тост-сообщение в «onDestroy».
Я искал решение этой проблемы Android-приложение работает на эмуляторе, но не на реальном устройстве Но оно не работает.
Коды моей услуги:
@Nullable
@Override
public IBinder onBind(Intent ıntent) {
return mBinder;
}
@Override
public void onCreate() {
super.onCreate();
Toast.makeText(this, "created", Toast.LENGTH_SHORT).show();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId ) {
Toast.makeText(this, "started", Toast.LENGTH_SHORT).show();
// // TODO: 22.03.2019 Hocam buradan gönderilebilir yalnız boş değer kabul etmez.
timer = new Timer();
timer.schedule(new TimerTask() { //her 60 sn de bir bildirimGonder(); metodu çağırılır.
@Override
public void run() {
new getirHtml().execute();
}
}, 0, 5000);
return START_STICKY;
}
public class getirHtml extends AsyncTask<Void,Void,Void > {
@Override
protected Void doInBackground(Void... voids) {
try {
document = Jsoup.connect(url).get();
h1element = document.select("div[data-id=rdIntBranchDoviz]");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
@Override
public void onDestroy() {
// timer.cancel();
Toast.makeText(this, "The service has stopped. This message came from service class.", Toast.LENGTH_LONG).show();
Log.i(TAG, "onDestroy: " + "worked");
}
public class LocalBinder extends Binder {
public doviz_takip_servis getServerInstance() {
return doviz_takip_servis.this;
}
}
Моя деятельность:
@Override
public void onCreate() {
Intent doviz_takip_servis = new Intent(getApplicationContext(),doviz_takip_servis.class);
startService(doviz_takip_servis);
}
@Override
protected void onStart() {
super.onStart();
Intent mIntent = new Intent(this, doviz_takip_servis.class);
bindService(mIntent, mConnection, BIND_AUTO_CREATE);
};
ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
mBounded = false;
mServer = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mBounded = true;
something.about.hatay.dviztakip.doviz_takip_servis.LocalBinder mLocalBinder = (something.about.hatay.dviztakip.doviz_takip_servis.LocalBinder)service;
mServer = mLocalBinder.getServerInstance();
}
};
@Override
protected void onStop() {
super.onStop();
if(mBounded) {
unbindService(mConnection);
mBounded = false;
}
}
BroadcastReceiver
{
@Override
public void onReceive(final Context context, Intent ıntent) {
Bundle extras = ıntent.getExtras();
String data = extras.getString("key");
String dataaa = extras.getString("dolar");
if (data != null){
String[] separated = data.split("\\ ");
amerikan_doları_alıs = separated[15] ;
}
if (dataaa != null ){
if (Double.parseDouble(amerikan_doları_alıs) > Double.parseDouble(dataaa)){
// Toast.makeText(context, "" + dataaa, Toast.LENGTH_SHORT).show();
}
}
Мой xml:
<service
android:name=".doviz_takip_servis"
android:exported="false"
android:supportsRtl="true"
/>
<receiver android:name=".update">
<intent-filter>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Мое ожидание в моем коде работает как эмулятор. Как я могу это сделать?