ورود

View Full Version : برنامه های موجود در قسمت running



gilas1368
سه شنبه 15 مهر 1393, 18:27 عصر
سلام به همه

حتما شما هم قسمت running گوشیتون رو دیدید
ی سری برنامه توی این قسمت در حال اجران
اما ی سری از برنامه ها رو مینویسه Restarting
میخاستم ببینم برنامه هایی رو ک مینویسه restarting دیگ اجرا نمیشن یا کماکان در حال اجران؟
من ی برنامه دارم ک ساعت 9 شب notif میده میخاستم اما ی وقتایی جلوش مینویسه restating میخاستم ببینم بازم سر ساعت 9 شب notif رو میده یا ن؟
چطوری میشه مانع از این شد ک برنامه بره در حالت restating؟

لازم ب ذکره من روی گوشیم برنامه clean droid رو نصب دارم

gilas1368
سه شنبه 15 مهر 1393, 20:30 عصر
ینی کسی اطلاعی نداره؟
برنامه من زمانیک در حالت restarting قرار میگیره دیگ notif نمیده چطور میتونم از اینک برنامه ام ب حالت restarting بره جلوگیری کنم؟

saeed_g21
سه شنبه 15 مهر 1393, 20:43 عصر
جواب شما رو نمی دونم ولی یک سوال :
برای دادن Notif مگه از BroadcastReciver استفاده نکردی ؟

یعنی وقتی میره به Restarting حتی BroadcastReciver هم از کار می افته ؟

gilas1368
سه شنبه 15 مهر 1393, 20:55 عصر
جواب شما رو نمی دونم ولی یک سوال :
برای دادن Notif مگه از BroadcastReciver استفاده نکردی ؟

یعنی وقتی میره به Restarting حتی BroadcastReciver هم از کار می افته ؟


فک میکنم هیمنطور باشه
دیشب ک برنامه در حالت عادی بود برنامه سر ساعت notif رو نمایش داد
اما امشب ک تو حالت restarting بود دیگ notif رو نداد

توی نت ک گشتم نوشته بود توی سوریستون بجای اینک متغیر START_STICKY (http://developer.android.com/reference/android/app/Service.html#START_STICKY) رو برگردونین متغیر START_NOT_STICKY (http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY) رو برگردونین
حالا نمیدونم اینکار چقد درسته
فعلا ک برنامه ام رو روی حالت START_NOT_STICKY (http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY) گذاشتم ببینم آیا جواب میده یا ن

gilas1368
سه شنبه 15 مهر 1393, 21:19 عصر
فک میکنم هیمنطور باشه
دیشب ک برنامه در حالت عادی بود برنامه سر ساعت notif رو نمایش داد
اما امشب ک تو حالت restarting بود دیگ notif رو نداد

توی نت ک گشتم نوشته بود توی سوریستون بجای اینک متغیر START_STICKY (http://developer.android.com/reference/android/app/Service.html#START_STICKY) رو برگردونین متغیر START_NOT_STICKY (http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY) رو برگردونین
حالا نمیدونم اینکار چقد درسته
فعلا ک برنامه ام رو روی حالت START_NOT_STICKY (http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY) گذاشتم ببینم آیا جواب میده یا ن

من نوع بازگشتی سرویسم رو بجایSTART_STICKY (http://developer.android.com/reference/android/app/Service.html#START_STICKY) روی START_NOT_STICKY (http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY) تنظیم کردم اول نشونش داد ک start شده اما در حال حاضر اصن توی قسمت running دیگ نمایشش نمیده
نمیدونم مشکل از کجاست و باید چیکا کنم
خودم دارم میگردم

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

متشکرم

gilas1368
چهارشنبه 16 مهر 1393, 15:40 عصر
از دوستان کسی نمیدونه چطور میشه جلوی restart شدن سرویس در قسمت running رو گرفت؟
من نتونستم چیزی پیدا کنم

abbasalim
چهارشنبه 16 مهر 1393, 23:06 عصر
من نوع بازگشتی سرویسم رو بجایSTART_STICKY (http://developer.android.com/reference/android/app/Service.html#START_STICKY) روی START_NOT_STICKY (http://developer.android.com/reference/android/app/Service.html#START_NOT_STICKY) تنظیم کردم اول نشونش داد ک start شده اما در حال حاضر اصن توی قسمت running دیگ نمایشش نمیده
نمیدونم مشکل از کجاست و باید چیکا کنم
خودم دارم میگردم

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

متشکرم

سلام تا اونجا که من حضور ذهن دارم start sticky یعنی سرویس منتظر بمون تا جواب برگرده وگرنه بسته نشو (البته اندروید ۴ به بالا) ولی no که باشه احتمالا دیگه بسته شدن برنامه اهمیت نداره
شما برای نمایش نوتیف باید از الارم منیجر استفاده کنید فکر نمیکنم الارم منیجر براش مشکلی پیش بیاد فقط باید برای روشن/خاموش شدن گوشی یه برودکست بزنی که دوباره برنامه کار کنه

gilas1368
پنج شنبه 17 مهر 1393, 15:59 عصر
سلام تا اونجا که من حضور ذهن دارم start sticky یعنی سرویس منتظر بمون تا جواب برگرده وگرنه بسته نشو (البته اندروید ۴ به بالا) ولی no که باشه احتمالا دیگه بسته شدن برنامه اهمیت نداره
شما برای نمایش نوتیف باید از الارم منیجر استفاده کنید فکر نمیکنم الارم منیجر براش مشکلی پیش بیاد فقط باید برای روشن/خاموش شدن گوشی یه برودکست بزنی که دوباره برنامه کار کنه


ممنون از پاسختون
اما من اول از آلارم منيجر استفاده کردم و سر ساعت بهم notif رو ميداد اما ي مشکلي وجود داشت
تا قبل از اينک برنامه notif رو نمايش بده مشکلي نداشت اما بعد از نمايش notif هر زمان وارد برنامه ميشدم بهم دوباره notif رو نمايش ميداد
منم براي اينک اين مشکلو حل کنم اومدم از سرويس استفاده کردم
اما سرويسم بعد از ي مدتي ميره رو حالت restarting و ديگ notif رو نمايش نميده

saeed_g21
پنج شنبه 17 مهر 1393, 16:30 عصر
دوست عزیز بهتر نبود بجای حذف صورت مسله ، مسله رو حل میکردی ؟؟؟

gilas1368
پنج شنبه 17 مهر 1393, 17:34 عصر
دوست عزیز بهتر نبود بجای حذف صورت مسله ، مسله رو حل میکردی ؟؟؟

حرفتون کاملا درسته
خيلي سعي کردم تا اين مشکل رو حل کنم اما نتونستم حتي مشکلم رو هم اينجا مطرح کردم اما کسي جوابي نداد
بهمين خاطر رفتم سمت سرويس

saeed_g21
پنج شنبه 17 مهر 1393, 20:00 عصر
ممنون از پاسختون
اما من اول از آلارم منيجر استفاده کردم و سر ساعت بهم notif رو ميداد اما ي مشکلي وجود داشت
تا قبل از اينک برنامه notif رو نمايش بده مشکلي نداشت اما بعد از نمايش notif هر زمان وارد برنامه ميشدم بهم دوباره notif رو نمايش ميداد
منم براي اينک اين مشکلو حل کنم اومدم از سرويس استفاده کردم
اما سرويسم بعد از ي مدتي ميره رو حالت restarting و ديگ notif رو نمايش نميده

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

مثلا"
اجرای دوباره AlarmManager
یا
دادن دوباره Notif در AlarmManager

یا امثال اینا


دادن Notif کی صورت میگرفت ؟
1) وقتی که Notif اصلی داده شده و باز مونده
2) وقتی که Notif اصلی داده شده و بعد از باز کردن یا بستن


بهمين خاطر رفتم سمت سرويس
خوب شد دیگه سرویس رو هم یاد گرفتی:لبخند:

gilas1368
شنبه 19 مهر 1393, 11:53 صبح
خوب حتما یک جایی از کدت مشکل داشت که اینکار رو میکرد

مثلا"
اجرای دوباره AlarmManager
یا
دادن دوباره Notif در AlarmManager

یا امثال اینا


دادن Notif کی صورت میگرفت ؟
1) وقتی که Notif اصلی داده شده و باز مونده
2) وقتی که Notif اصلی داده شده و بعد از باز کردن یا بستن


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

notif ساعت 9 شب داده میشد
اما بعد از اون هر زمان ک وارد برنامه میشدم دوباره notif رو میداد حتی اگ notif رو از notification bar حذف یا روش ضربه میزدی
این کدای منه

1- کد BroadcastReceiver:


public class NotificationReceiver extends BroadcastReceiver {


public static final String ACTION_SET_ALARM = "siavash.com.feelinger.SET_ALARM";
public static final String ACTION_SHOW_NOTIFICATION = "siavash.com.feelinger.SHOW_NOTIFICATION";
public static NotificationCompat.Builder mBuilder;


@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equalsIgnoreCase(ACTION_SHOW_N OTIFICATION)) {
showNotification(context);
}


setAlarm(context);


//showNotification(context);


}


private void showNotification(Context context) {
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE _NOTIFICATION);


Intent intent=new Intent(context, QuestionActivity.class);
PendingIntent pendingIntent=PendingIntent.getActivity(context,0, intent,0);


mBuilder = new NotificationCompat.Builder(context).
setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Feelinger")
.setContentText("How are you feeling today?")
.setSound(alarmSound)
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setVibrate(new long[]{300, 200, 200, 200});


NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERV ICE);


mNotificationManager.notify(100, mBuilder.build());
}


private void setAlarm(Context context) {


Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis( ));
calendar.set(Calendar.HOUR_OF_DAY, 21);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);


Intent intent = new Intent(context, this.getClass());
intent.setAction(ACTION_SHOW_NOTIFICATION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,intent, 0);


AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);


alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
}


private boolean CheckTime(){
Calendar calendar=Calendar.getInstance();
int hour=calendar.get(Calendar.HOUR_OF_DAY);
int minute=calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND);


//Toast.makeText(context,String.valueOf(hour),Toast. LENGTH_LONG).show();
//Toast.makeText(context,String.valueOf(minute),Toas t.LENGTH_LONG).show();


if(hour==21 && minute==0 && second==0){
return true;
}else {
return false;
}
}
}




2- کدی ک BroadcastReceiver رو فراخوانی میکنه و توی رویداد Oncreate() موجود در mainActivity نوشته شوده


public void ShowNotification(){
Intent intent = new Intent(MainActivity.this, NotificationReceiver.class);
intent.setAction("siavash.com.feelinger.SET_ALARM");
sendBroadcast(intent);
}

3- اینم کد منیفست:


<receiver android:name=".NotificationReceiver"
android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="siavash.com.feelinger.SET_ALARM" />
<action android:name="siavash.com.feelinger.SHOW_NOTIFICATION" />
</intent-filter>
</receiver>