Android'de bir yeni kullanıcıyım. Bugün Hatırlatma uygulamam için AlarmManage ile çalışmayı denedim ve kullanıcıların bildirim göstermesi için saat ve dakikaları girmelerine izin verdim ve bununla ilgili bir sorunum var. 1. İlk sorun, bildirim göründüğünde, yalnızca titreşim ve ses gelmedi, ancak bildirim için ses varsayılanını ayarladım ve telefonumun sesini ayarlamasına izin verdim. 2. Uygulamayı kapattığımda, bildirime dokunduğumda, MainActivity gösterilecek ve yine uygulamamın bildirimini tekrar gösterecek bir AlarmManager çalışmayacak. Ancak, uygulama açıldığında bildirime dokunursam, bildirim gösterilmez. bu yüzden başvurumu sadece bir kez bildirimi istiyorum. Nasıl yapabilirim ?. 3. Hatırlatmak için zaman ayarlamama rağmen, ancak uygulamayı kapattığımda, hiç bir zaman ayarlamadığım zamanlarda telefonum, hatırlatma uygulamamın bildirimini görüntülüyor. Bu sorunu nasıl giderebilirim?Aktivite başladığında AlarmManager nasıl durdurulur
MyAlarmService
private NotificationManager mManager;
@Override
public IBinder onBind(Intent arg0)
{
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate()
{
// TODO Auto-generated method stub
super.onCreate();
}
@SuppressWarnings("static-access")
@Override
public void onStart(Intent intent, int startId)
{
super.onStart(intent, startId);
// Toast.makeText(this, "I'm running", Toast.LENGTH_SHORT).show();
long[] v = {500,1000};
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setVibrate(v)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setSmallIcon(R.drawable.ic_remind)
.setContentTitle("My notification")
.setContentText("This is a test message!");
mBuilder.setSound(Settings.System.DEFAULT_NOTIFICATION_URI);
mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION));
mBuilder.setAutoCancel(true);
Intent intent1 = new Intent(this.getApplicationContext(),MainActivity.class);
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MainActivity.class);
stackBuilder.addNextIntent(intent1);
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this.getApplicationContext(),0, intent1,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pendingNotificationIntent);
mManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mManager.notify(0, mBuilder.build());
}
@Override
public void onDestroy()
{
// TODO Auto-generated method stub
super.onDestroy();
}
Alıcı
public void onReceive(Context context, Intent intent)
{
Intent service1 = new Intent(context, MyAlarmService.class);
context.startService(service1);
}
MainActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText edt_hours = (EditText)findViewById(R.id.edt_hour);
final EditText edt_minutes = (EditText)findViewById(R.id.edt_minutes);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(edt_hours.getText().toString()));
calendar.set(Calendar.MINUTE, Integer.parseInt(edt_minutes.getText().toString()));
//calendar.set(Calendar.SECOND,0);
Intent myIntent = new Intent(MainActivity.this, MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent,0);
alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
}
});
} //end onCre
p/s: ingilizcem iyi olmadığı için benim sorum açıkça değilse çok üzgünüm. Ve bu soruyu okuyan herkes için teşekkür etmek istiyorum.
teşekkürler kardeşim, mükemmel çalışıyor. Ama kodumun neden çalışmadığını bilmiyorum. Ve kodunuzda, ses hala çalışmıyor –
Kusura bakma, Bunu kullan "niyet amacı = yeni niyet (MainActivity.this, NotificationReceiver.class);" "Niyet amacı = yeni Niyet (MainActivity.this, AlarmReceiver.class)" yerine; MainActivity içinde. Ve şimdi tekrar deneyin – Sabari
Kodunu kullanıyorum ama ses hala çalışmıyor :(.Ben bu sorun benim telefonum :(. Bcuz i app chplay aynı uygulamayı deneyin.Ancak ses değil endişe.) –