Ale nie jest powiedziane ze nie mozesz użyć tego i tego. Możesz w kodzie sprawdzić jaka jest wersja systemu i skorzystać z odpowiedniego komponentu.
To z pewnością dobry pomysł i pewnie zrobię tak jak sugerujesz 🙂
Mam niestety inny problem, otóż znalazłem wolną chwilę i tak czytam i przeglądam różne przykłady ale każdy z nich pokazuje wykorzystanie alarmManagera w
połączeniu z BroadcastReceiver lub z Services lub też z oboma tymi komponentami.
Czy alarmManager samodzielnie nie może funkcjonować w np. Activity?
A może jest gdzieś jakiś dobry tutorial odnośnie tego komponentu tylko ja po prostu nie mogę go znaleźć?
[Dodano: 19 lipiec 2016 - 23:54]
Znalazłem super przykład z takiej strony: http://stacktips.com/tutorials/android/repeat-alarm-example-in-android
Przerobiłem go do własnych potrzeb i działa bez zarzutu, doputy do puki nie zapodam mu klasy activity.
Otóż wywala się na: cursor.
Moja klasa z BroadcastReceiver po przerobieniu wygląda tak (wywołuję tu metodę: msg() z klasy Activity) :
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyBroadcast extends BroadcastReceiver {
EkranGlowny EG;
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "I'm running", Toast.LENGTH_LONG).show();
EG = new EkranGlowny();
EG.msg();
}
}
Metoda msg() w klasie Activity wygląda tak:
public void msg(){
int zm_status_sms = 0;
Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getContentResolver().query(uriSMSURI, null, "read = 0", null, null);
while (cur.moveToNext()){
zm_status_sms = 1;
}
if(zm_status_sms > 0) {
Toast.makeText(getApplicationContext(), "NIE PRZECZYTANE:", Toast.LENGTH_LONG).show();
..... inne instrukcje, nie powodujące błędów
}
else{
Toast.makeText(getApplicationContext(), "PRZECZYTANE", Toast.LENGTH_LONG).show();
}
}
cała aplikacja wywala się w momencie dojścia do linii:
Cursor cur = getContentResolver().query(uriSMSURI, null, "read = 0", null, null);
Co robię nie tak? z logów wynika że problemem jest : getContentResolver
Jak można to inaczej zadeklarować żeby BroadcastReceiver się nie wysypywał? jest na to jakiś sposób?
Pozdrawiam
Marcin