Soru & Cevap

Periyodik tekrar eden bildirim,AlarmManager

01.10.2015 - 09:20

Bir alarm manager ile belirli aralıklarla bildirim göstermeyi planlıyorum uygulama açık yada kapalı olsa dahi, bu yüzden servis kullandım ama bu bildirim 1 kez çıkıyor daha sonra ikinci 10sn de bildirim gelmiyor. kodlarımda neresi yanlış acaba veya nasıl bir kod kullanmalıyım .teşekkürler

MainActivity.java

 private PendingIntent pendingIntent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Intent myIntent = new Intent(Main.this, MyReceiver.class);
        pendingIntent = PendingIntent.getBroadcast(Main.this, 0, myIntent, 0);

        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC, 1000 * 10, pendingIntent);

    }

MyReceiver.java

   @Override
    public void onReceive(Context context, Intent intent)
    {
        Intent service1 = new Intent(context, MyAlarmService.class);
        context.startService(service1);

    }

MyAlarmService.java

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.IBinder;

import android.app.Service;


public class MyAlarmService extends Service
{

    private NotificationManager mManager;

    @Override
    public IBinder onBind(Intent arg0)
    {

        return null;
    }

    @Override
    public void onCreate()
    {
        // TODO Auto-generated method stub
        super.onCreate();
    }

    @Override
    public void onStart(Intent intent, int startId)
    {
        //Servis basladığında gerçeklesecekler...

        super.onStart(intent, startId);
        NotificationManager bildirimYÖnetiicisi = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification bildirim = new Notification.Builder(getApplicationContext())
                .setTicker("Bildirim var!")
                .setContentTitle("Başlık")
                .setContentText("İçerik")
                .setContentIntent(PendingIntent.getActivity(getApplicationContext(), 0, new Intent(getApplicationContext(),Main.class),0))
                .setSmallIcon(R.drawable.host)
                .setAutoCancel(true)//üstüne tıklanınca kapansın
                .getNotification();
        bildirimYÖnetiicisi.notify("bildirim_yeni",0,bildirim);
    }

    @Override
    public void onDestroy()
    {
      super.OnDestroy();//kullanıp kullanmamam bir şeyi değiştirmedi
    }

}

 

148 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-7541-1521024507.jpg
burhanaras
10.10.2015 - 11:58

setInexactRepeating() methodunu kullanabilirsin.

alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
        AlarmManager.INTERVAL_DAY, alarmIntent);