получить строку для вывода в уведомлении

Ответить
nikomp
Сообщения: 68
Зарегистрирован: 08 дек 2014, 17:03

получить строку для вывода в уведомлении

Сообщение nikomp » 25 фев 2015, 16:19

Добрый день!

Пытаюсь написать свою напоминалку.
что получилось.
Есть БД куда сохраняются напоминания, есть класс в котором описан вид напоминания, есть будильник который эти напоминания "поднимает" в зависимости от времени.

пытаюсь вывести текст в напоминании, в идеале конечно бы ьрать его из БД, но пока не получается, поэтому пробую просто с активити его взять и запихнуть в уведомление, но тоже не получается. вот код:

Код: Выделить всё

void sendNotif() {
    // 1-я часть
    Notification notif = new Notification(R.drawable.ic_launcher, "Внимание!", 
      System.currentTimeMillis());
    
    
    //Log.d("MyLogs","cccccccccc");
    /*db.open();
    String note2 = db.getNote();
    db.close*/
    
    Log.d("MyLogs",MainActivity.note1); // <- ОШИБКА!
    
    
     // 3-я часть
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra(MainActivity.Note, MainActivity.note1);
    PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
    
    // 2-я часть
    notif.setLatestEventInfo(this, "Событие", MainActivity.note1, pIntent);
    
    // ставим флаг, чтобы уведомление пропало после нажатия
    notif.flags |= Notification.FLAG_AUTO_CANCEL;
    notif.flags |= Notification.FLAG_INSISTENT;
    notif.defaults |= Notification.DEFAULT_SOUND;
    
    //Uri ringURI = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    //notif.sound = ringURI;
    
    // отправляем
    nm.notify(1, notif);
  }
строка note1 из MainActivity не выводится, хотя описана как public static. Если заменить ее везде на константу, все ок!

вот лог ошибки
02-25 13:18:18.779: E/AndroidRuntime(398): FATAL EXCEPTION: main
02-25 13:18:18.779: E/AndroidRuntime(398): java.lang.RuntimeException: Unable to start service com.example.myreminder.MyService@406657a0 with Intent { flg=0x4 cmp=com.example.myreminder/.MyService (has extras) }: java.lang.NullPointerException: println needs a message
02-25 13:18:18.779: E/AndroidRuntime(398): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2159)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.app.ActivityThread.access$2800(ActivityThread.java:122)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1065)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.os.Handler.dispatchMessage(Handler.java:99)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.os.Looper.loop(Looper.java:132)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.app.ActivityThread.main(ActivityThread.java:4025)
02-25 13:18:18.779: E/AndroidRuntime(398): at java.lang.reflect.Method.invokeNative(Native Method)
02-25 13:18:18.779: E/AndroidRuntime(398): at java.lang.reflect.Method.invoke(Method.java:491)
02-25 13:18:18.779: E/AndroidRuntime(398): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-25 13:18:18.779: E/AndroidRuntime(398): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-25 13:18:18.779: E/AndroidRuntime(398): at dalvik.system.NativeStart.main(Native Method)
02-25 13:18:18.779: E/AndroidRuntime(398): Caused by: java.lang.NullPointerException: println needs a message
02-25 13:18:18.779: E/AndroidRuntime(398): at android.util.Log.println_native(Native Method)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.util.Log.d(Log.java:137)
02-25 13:18:18.779: E/AndroidRuntime(398): at com.example.myreminder.MyService.sendNotif(MyService.java:42)
02-25 13:18:18.779: E/AndroidRuntime(398): at com.example.myreminder.MyService.onStartCommand(MyService.java:27)
02-25 13:18:18.779: E/AndroidRuntime(398): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2146)
02-25 13:18:18.779: E/AndroidRuntime(398): ... 10 more

уведомление создается в отдельном потоке, может из-за этого ошибка?
как передать в уведомление свой текст (введенный на другом активити)?

nikomp
Сообщения: 68
Зарегистрирован: 08 дек 2014, 17:03

Re: получить строку для вывода в уведомлении

Сообщение nikomp » 25 фев 2015, 16:49

блиин, как обычно "бегу впереди паровоза" есть урок о том как передавать в Сервисы данные
http://startandroid.ru/ru/uroki/vse-uro ... rvisa.html

все получилось!

Ответить