PDA

View Full Version : طريقه استفاده از آلارم منيجر



gilas1368
شنبه 05 مهر 1393, 15:59 عصر
سلام
من ميخام هر روز راس ساعت 21 شب ي ناتيفيکيشن توي ناتيفيکيشن بار ب کاربر نمايش بدم
رفرنساي گوگل و ي سري سايت و مثال هاي اونا رو خوندم
اماچيزي متوجه نشدم
از دوستان کسي ميتونه راهنمائيم کنه تا بتونم مشکلمو حل کنم؟


از همه ممنونم

gilas1368
شنبه 05 مهر 1393, 17:39 عصر
کسی از دوستان و اساتید نمیدونه چطوری من میتونم با استفاده از آلارم منیجر چیزی رو ک میخام پیاده سازی کنم؟:گریه:

کمک کنین دوستان، ثواب داره بخدا

ali-star
شنبه 05 مهر 1393, 17:53 عصر
اول معرفی:

AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));

بعد ست کردن یک آلارم

manager.set( AlarmManager.RTC_WAKEUP, زمان, pintent );

اگه بخواین آلارم هر چند مدت تکرار بشه:

manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pintent);

gilas1368
شنبه 05 مهر 1393, 18:05 عصر
اول معرفی:

AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));

بعد ست کردن یک آلارم

manager.set( AlarmManager.RTC_WAKEUP, زمان, pintent );

اگه بخواین آلارم هر چند مدت تکرار بشه:

manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60 * 10, pintent);


بعد اگ برنامه بسته بشه یا گوشی ریست بشه چی؟

majid.ostadi
شنبه 05 مهر 1393, 18:08 عصر
باید از boot_complate استفاده کنی که تا گوشی ریست یا خاموش شد دوباره فعال بشه

ali-star
شنبه 05 مهر 1393, 18:14 عصر
بعد اگ برنامه بسته بشه یا گوشی ریست بشه چی؟

یک سرویس درست کن که هر چند مدت آلارم ست کنه.

gilas1368
شنبه 05 مهر 1393, 18:39 عصر
باید از boot_complate استفاده کنی که تا گوشی ریست یا خاموش شد دوباره فعال بشه

دسترسی رو بهش دادم اما کار نمیکنه


یک سرویس درست کن که هر چند مدت آلارم ست کنه.

بخدا دارم دیوونه میشم دیگ
یکی میگ از الارم منیجر استفاده کن
یکی میگ سرویس درست کن

بلاخره باید چیکا کنم من؟:گریه:

چطوری توی برنامه ام ی سرویس درست کنم ک وقتی برنامه نصب میشه اونم نصبش کنه؟
باید سرویس و برنامه از هم جدا باشن؟
نمیشه سرویس و برنامه داخل ی فایل apk باشه ک با نصب برنامه سرویس هم استارت بشه؟

majid.ostadi
شنبه 05 مهر 1393, 18:49 عصر
از این کلاس استفاده کن

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class BootUpReceiver extends BroadcastReceiver
{


@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub

Intent i = new Intent(context, AlarmReceiverActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}


}

gilas1368
شنبه 05 مهر 1393, 19:18 عصر
از این کلاس استفاده کن

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class BootUpReceiver extends BroadcastReceiver
{


@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub

Intent i = new Intent(context, AlarmReceiverActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}


}



خب این کلاس چیه و چکاری انجام میده؟
اگ برنامه بسته بشه یا گوشی ریست بشه بازم کار خواهد کرد؟

ali-star
شنبه 05 مهر 1393, 19:28 عصر
دسترسی رو بهش دادم اما کار نمیکنه



بخدا دارم دیوونه میشم دیگ
یکی میگ از الارم منیجر استفاده کن
یکی میگ سرویس درست کن

بلاخره باید چیکا کنم من؟:گریه:

چطوری توی برنامه ام ی سرویس درست کنم ک وقتی برنامه نصب میشه اونم نصبش کنه؟
باید سرویس و برنامه از هم جدا باشن؟
نمیشه سرویس و برنامه داخل ی فایل apk باشه ک با نصب برنامه سرویس هم استارت بشه؟

فکر کنم با سرویس زیاد آشنایی نداری... سرویس تنها یک کلاسه... ربطی به برنامه خارجی نداره...

اول ساخت یک سرویس:
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class service extends Service {

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
super.onCreate();

}

@Override
public void onDestroy() {
super.onDestroy();

}

public int onStartCommand(Intent intent, int flags, int startId) {


return 1;
}

}


دوم اضافه کردن آلارم منیجر به سرویس و ست کردن در تابع onStartCommand:
AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
manager.set( AlarmManager.RTC_WAKEUP, زمان, pintent );

gilas1368
شنبه 05 مهر 1393, 19:33 عصر
فکر کنم با سرویس زیاد آشنایی نداری... سرویس تنها یک کلاسه... ربطی به برنامه خارجی نداره...

اول ساخت یک سرویس:
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.widget.Toast;

public class service extends Service {

@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onCreate() {
super.onCreate();

}

@Override
public void onDestroy() {
super.onDestroy();

}

public int onStartCommand(Intent intent, int flags, int startId) {


return 1;
}

}


دوم اضافه کردن آلارم منیجر به سرویس و ست کردن:
AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
manager.set( AlarmManager.RTC_WAKEUP, زمان, pintent );


pintent چیه دقیقا؟
و اگ بخام ساعت هر روز ساعت 9 شب بهم ی پیغام بده باید زمان رو چی ست کنم؟

ali-star
شنبه 05 مهر 1393, 19:48 عصر
pintent چیه دقیقا؟
و اگ بخام ساعت هر روز ساعت 9 شب بهم ی پیغام بده باید زمان رو چی ست کنم؟

همون PendingIntent هست و برای اینتنت استفاده میشه:
Intent intent = new Intent(this, FileManagerActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

برای ساعت ۹:
Calendar alarmCalendar = Calendar.getInstance();
alarmCalendar.set(Calendar.HOUR_OF_DAY, 21);
alarmCalendar.set(Calendar.MINUTE, 0);
alarmCalendar.set(Calendar.SECOND, 0);

AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
manager.set( AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis();, pintent );

gilas1368
شنبه 05 مهر 1393, 19:54 عصر
همون PendingIntent هست و برای اینتنت استفاده میشه:
Intent intent = new Intent(this, FileManagerActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);

برای ساعت ۹:
Calendar alarmCalendar = Calendar.getInstance();
alarmCalendar.set(Calendar.HOUR_OF_DAY, 21);
alarmCalendar.set(Calendar.MINUTE, 0);
alarmCalendar.set(Calendar.SECOND, 0);

AlarmManager manager = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
manager.set( AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis();, pintent );

میدونم
PendingIntent هستش
نمیدونم برای چی ازش استفاده میشه و اینک FileManagerActivity.class چ کلاسیه (میدونم ی چیز فرضیه) منظورم اینه ک داخل این کلاس چی باید نوشته شده باشه

gilas1368
شنبه 05 مهر 1393, 20:28 عصر
من ی سرویس ساختم با این کد:



public class NotificationService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}


@Override
public int onStartCommand(Intent intent, int flags, int startId) {
SetTime();
return START_STICKY;
}


@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this,"Stop",Toast.LENGTH_LONG).show();
}


private void SetTime() {
Intent intent = new Intent(this, NotificationReciver.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);


Calendar alarmCalendar = Calendar.getInstance();
alarmCalendar.set(Calendar.HOUR_OF_DAY, 21);
alarmCalendar.set(Calendar.MINUTE, 0);
alarmCalendar.set(Calendar.SECOND, 0);


AlarmManager manager = (AlarmManager) (this.getSystemService(Context.ALARM_SERVICE));
manager.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent);
}
}

اینم کدی ک داخل NotificationReciver.class نوشتم:



public class NotificationReciver extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ShowNotification();
}


private void ShowNotification(){
Intent intent1 = new Intent(this, MainActivity.class);
PendingIntent pendingIntent1 = PendingIntent.getActivity(this, 0, intent1, 0);


NotificationManager mNotificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);


int notifyID = 2;
Notification mNotifyBuilder = new NotificationCompat.Builder(this)
.setContentTitle("Feelinger")
.setContentText("How are you feeling today?")
.setSmallIcon(R.drawable.ic_launcher).setContentIn tent(pendingIntent1).build();


mNotificationManager.notify(notifyID,mNotifyBuilde r);
}
}

اما برنامه توی زمانی ک براش مشخص میکنم notification رو نمایش نمیده؟
علتش چیه؟

gilas1368
شنبه 05 مهر 1393, 22:23 عصر
کسي نميتونه بهم کمک کنه؟

gilas1368
یک شنبه 06 مهر 1393, 08:52 صبح
رفقا کسی نمیدونه من چطوری میتونم مشکلمو حل کنم؟
ینی انقد سخته؟

majid.ostadi
یک شنبه 06 مهر 1393, 09:27 صبح
رفقا کسی نمیدونه من چطوری میتونم مشکلمو حل کنم؟
ینی انقد سخته؟
من از این کلاس استفاده کردم و جواب گرفتم
اول این کلاس را به پروژه اضافه کن:
import java.io.IOException;

import junit.framework.Protectable;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.PowerManager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;


public class AlarmReceiverActivity extends Activity
{


private MediaPlayer mMediaPlayer;
private PowerManager.WakeLock mWakeLoack;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLoack = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Wake Log");
mWakeLoack.acquire();
this.requestWindowFeature(Window.FEATURE_NO_TITLE) ;
this.getWindow().setFlags(WindowManager.LayoutPara ms.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(R.layout.alarm);

Button stopAlarm = (Button) findViewById(R.id.btnStopAlarm);
stopAlarm.setOnClickListener(new OnClickListener() {
public void onClick(View arg0)
{
mMediaPlayer.stop();
finish();
}
});
playSound(this, getAlarmUri());
}//on create

private void playSound(Context context, Uri alert)
{
mMediaPlayer = new MediaPlayer();
try
{
mMediaPlayer.setDataSource(context, alert);
final AudioManager audioManager =
(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
if (audioManager.getStreamVolume(AudioManager.STREAM_ ALARM) != 0)
{
mMediaPlayer.setAudioStreamType(AudioManager.STREA M_ALARM);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
} catch (IOException e)
{
}
}//playsound

private Uri getAlarmUri()
{
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _ALARM);
if (alert == null)
{
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _NOTIFICATION);
if (alert == null)
{
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _RINGTONE);
}
}
return alert;
}//uri getalramuri

protected void onStop()
{
super.onStop();
if (mWakeLoack.isHeld())
mWakeLoack.release();
}//onStop

}

بعد این کلاس هک اضافه کن :
import android.app.Activity;import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class RepeatingAlarmReceiverActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm);

Button stopAlarm = (Button) findViewById(R.id.btnStopAlarm);
stopAlarm.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
finish();

}
});


}//onCreate
}



اینم کد ها هم به main activity اضافه کن :

try
{

Intent intent = new Intent(Home.this, AlarmReceiverActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivity(Home.this, 2, intent,
PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + day,
Repeat , pendingIntent);


} catch (NumberFormatException e)
{
if (mToast != null)
{
mToast.cancel();
}
mToast = Toast.makeText(Home.this,
"NOT DATE",
Toast.LENGTH_LONG);
mToast.show();
}
}

این هم کلاس boot_complate :

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class BootUpReceiver extends BroadcastReceiver
{


@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub

Intent i = new Intent(context, AlarmReceiverActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}


}

در ضمن باید دسترسی به manifest هم اضافه کنی :
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

gilas1368
یک شنبه 06 مهر 1393, 16:00 عصر
من از این کلاس استفاده کردم و جواب گرفتم
اول این کلاس را به پروژه اضافه کن:
import java.io.IOException;

import junit.framework.Protectable;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.PowerManager;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;


public class AlarmReceiverActivity extends Activity
{


private MediaPlayer mMediaPlayer;
private PowerManager.WakeLock mWakeLoack;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
mWakeLoack = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Wake Log");
mWakeLoack.acquire();
this.requestWindowFeature(Window.FEATURE_NO_TITLE) ;
this.getWindow().setFlags(WindowManager.LayoutPara ms.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
WindowManager.LayoutParams.FLAG_FULLSCREEN |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(R.layout.alarm);

Button stopAlarm = (Button) findViewById(R.id.btnStopAlarm);
stopAlarm.setOnClickListener(new OnClickListener() {
public void onClick(View arg0)
{
mMediaPlayer.stop();
finish();
}
});
playSound(this, getAlarmUri());
}//on create

private void playSound(Context context, Uri alert)
{
mMediaPlayer = new MediaPlayer();
try
{
mMediaPlayer.setDataSource(context, alert);
final AudioManager audioManager =
(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
if (audioManager.getStreamVolume(AudioManager.STREAM_ ALARM) != 0)
{
mMediaPlayer.setAudioStreamType(AudioManager.STREA M_ALARM);
mMediaPlayer.prepare();
mMediaPlayer.start();
}
} catch (IOException e)
{
}
}//playsound

private Uri getAlarmUri()
{
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _ALARM);
if (alert == null)
{
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _NOTIFICATION);
if (alert == null)
{
alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _RINGTONE);
}
}
return alert;
}//uri getalramuri

protected void onStop()
{
super.onStop();
if (mWakeLoack.isHeld())
mWakeLoack.release();
}//onStop

}

بعد این کلاس هک اضافه کن :
import android.app.Activity;import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class RepeatingAlarmReceiverActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm);

Button stopAlarm = (Button) findViewById(R.id.btnStopAlarm);
stopAlarm.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
finish();

}
});


}//onCreate
}



اینم کد ها هم به main activity اضافه کن :

try
{

Intent intent = new Intent(Home.this, AlarmReceiverActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivity(Home.this, 2, intent,
PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + day,
Repeat , pendingIntent);


} catch (NumberFormatException e)
{
if (mToast != null)
{
mToast.cancel();
}
mToast = Toast.makeText(Home.this,
"NOT DATE",
Toast.LENGTH_LONG);
mToast.show();
}
}

این هم کلاس boot_complate :

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;


public class BootUpReceiver extends BroadcastReceiver
{


@Override
public void onReceive(Context context, Intent intent)
{
// TODO Auto-generated method stub

Intent i = new Intent(context, AlarmReceiverActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}


}

در ضمن باید دسترسی به manifest هم اضافه کنی :
<uses-permissionandroid:name="android.permission.WAKE_LOCK"/>
<uses-permissionandroid:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permissionandroid:name="android.permission.BOOT_COMPLETED"/>
<uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

این کدا واسه من ک کار نکرد

میشه ازتون خاهش کنم ی سرویس بنویسید ک سر ساعت 9 شب ی notification رو نمایش بده
بخدا دیوونه شدم دیگ:گریه::عصبانی++::عصبانی++:

majid.ostadi
یک شنبه 06 مهر 1393, 16:27 عصر
اینو به اکتیویتی اضافه کن :

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 00);

int Repeat = 24*60*60* 1000;

try
{

Intent intent = new Intent(MainActivity.this, AlarmReceiverActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivity(MainActivity.this, 2, intent,
PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + day,
Repeat , pendingIntent);


} catch (NumberFormatException e)
{
if (mToast != null)
{
mToast.cancel();
}
mToast = Toast.makeText(MainActivity.this,
"NOT DATE",
Toast.LENGTH_LONG);
mToast.show();
}

gilas1368
یک شنبه 06 مهر 1393, 16:39 عصر
اینو به اکتیویتی اضافه کن :

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 00);

int Repeat = 24*60*60* 1000;

try
{

Intent intent = new Intent(MainActivity.this, AlarmReceiverActivity.class);
PendingIntent pendingIntent =
PendingIntent.getActivity(MainActivity.this, 2, intent,
PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + day,
Repeat , pendingIntent);


} catch (NumberFormatException e)
{
if (mToast != null)
{
mToast.cancel();
}
mToast = Toast.makeText(MainActivity.this,
"NOT DATE",
Toast.LENGTH_LONG);
mToast.show();
}







مجید جان بازم کار نمیکنه

majid.ostadi
یک شنبه 06 مهر 1393, 16:47 عصر
چه خطایی میده؟؟؟

gilas1368
یک شنبه 06 مهر 1393, 16:51 عصر
چه خطایی میده؟؟؟

ببینید من ی سرویس دارم با این کد:



public class NotificationService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}


@Override
public int onStartCommand(Intent intent, int flags, int startId) {
SetTime();
return START_STICKY;
}


@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this,"Stop",Toast.LENGTH_LONG).show();
}


private void SetTime() {
Intent intent = new Intent(this, NotificationReciver.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);


Calendar alarmCalendar=Calendar.getInstance();
alarmCalendar.setTimeInMillis(System.currentTimeMi llis( ));
alarmCalendar.set(Calendar.HOUR_OF_DAY, 5);
alarmCalendar.set(Calendar.MINUTE, 16);
alarmCalendar.set(Calendar.SECOND, 0);


AlarmManager manager = (AlarmManager) (this.getSystemService(Context.ALARM_SERVICE));
manager.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent);
manager.setInexactRepeating(AlarmManager.RTC_WAKEU P, alarmCalendar.getTimeInMillis(),AlarmManager.INTER VAL_DAY, pendingIntent);


}
}

و ی کلاس دارم ب اسم NotificationReciver ک کدش اینه و برای نمایش notification استفاده میشه



public class NotificationReciver extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ShowNotification();
}


private void ShowNotification(){
Intent intent1 = new Intent(this, MainActivity.class);
PendingIntent pendingIntent1 = PendingIntent.getActivity(this, 0, intent1, 0);


NotificationManager mNotificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);


int notifyID = 2;
Notification mNotifyBuilder = new NotificationCompat.Builder(this)
.setContentTitle("Feelinger")
.setContentText("How are you feeling today?")
.setSmallIcon(R.drawable.ic_launcher).setContentIn tent(pendingIntent1).build();


mNotificationManager.notify(notifyID,mNotifyBuilde r);
}
}

توی اکتیویتی main ام هم با این کد سرویس رو استارت میکنم

startService(new Intent(getBaseContext(),NotificationService.class) );

majid.ostadi
یک شنبه 06 مهر 1393, 17:00 عصر
من با این سرویس کار نکردم:اشتباه::اشتباه: از دوستان که کار کردن کمک بگیر
اما اون کدهای آلارم رو که برات دادم خودم استفاده کردم و جواب داده

gilas1368
یک شنبه 06 مهر 1393, 17:23 عصر
توی کد :
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + day, Repeat , pendingIntent);

day رو چی باید تنظیم کنم؟

majid.ostadi
یک شنبه 06 مهر 1393, 17:30 عصر
توی کد :
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + day, Repeat , pendingIntent);

day رو چی باید تنظیم کنم؟

یه سرچی تو نت بزن پیدا میکنی. واسه هرروز هست

#root#
یک شنبه 06 مهر 1393, 19:46 عصر
سلام ، با اطلاعات بنده برای این کار نیاز به Service نیست ، یه Broadcast کافیه ، نمونه برنامه (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2110544&viewfull=1#post2110544)

gilas1368
یک شنبه 06 مهر 1393, 20:21 عصر
سلام ، با اطلاعات بنده برای این کار نیاز به Service نیست ، یه Broadcast کافیه ، نمونه برنامه (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2110544&viewfull=1#post2110544)

ممنون بابت برنامه

فقط اینک اگ از برنامه خارج بشی دیگ notification رو نمایش نمیده

من برنامه رو برای ساعت 20:55 تنظیم کردم و از برنامه خارج شدم
اما دیگ notificaiotn رو نشون نداد
و اگ تو همین تایم وارد برنامه بشم notification رو نشون میده

gilas1368
یک شنبه 06 مهر 1393, 20:33 عصر
سلام ، با اطلاعات بنده برای این کار نیاز به Service نیست ، یه Broadcast کافیه ، نمونه برنامه (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2110544&viewfull=1#post2110544)


برنامه رو برا ساعت 21 تنظیم کردم
اما توی هر زمانی ک وارد برنامه میشم notification رو نمایش میده
نمیخام اینطوری باشه

rubiks.kde
یک شنبه 06 مهر 1393, 21:23 عصر
دوست عزیز برای هر سوال صدتا تاپیک نزنید