PDA

View Full Version : مشکل با broadcastReceiver



Hello,World!!
پنج شنبه 11 آبان 1391, 03:21 صبح
سلام
دوستان من برنامه ای دارم که می خوام در اون هر موقع اس ام اس به گوشی میاد برنامه من یه activity خاص رو اجرا کنه و اون اس ام اس رو درون اون activity نشون بده. برای این کار از broadcastreceiver استفاده کردم. برنامه مشکلی نداره و هنگامی که برنامه در پس زمینه در حال اجرا است و اس ام اس به گوشی میاد برنامه بالا میاد و اس ام اس رو نشون می ده اما وقتی که مثلا با دکمه back از برنامه خارج می شیم و اون موقع اس ام اس میاد برنامه بالا میاد و اون activity نشون داده می شه اما اما محتوای اس ام اس نشون داده نمیشه. لازم به ذکره که من هنگامی که اون activity رو start می کنم قبلش محتوای اس ام اس رو میفرستم براش(همون putextra)
ممنون می شم راهنمایی کنید.

Modernidea
دوشنبه 29 آبان 1391, 11:50 صبح
سلام دوست عزیز،
من سه پشینهاد به نظرم میرسه:


از یکی از توابع زیر برای بروز رسانی view مور نظر بعد از انجام تغییرات استفاده کنید.


postInvalidate()

از تابع فوق زمانی استفاده میشود که view مورد نظر از non-UI Thread در آن تغییرات ایجاد شده باشد.


invalidate()

از تابع فوق زمانی استفاده میشود که view مورد نظر از UI-Thread تغییرات در آن ایجاد شده باشد.
مثال:

TextView1.postInvalidate();



یک کلاس مرجع برای خودتون بسازید و تمام مقادیری که در activity های مختلف استفاده میکنید را در آن قرار دهید. با این کار دیگر نیاز به استفاده از putextra ندارید.
درضمن، برای استقاده راحت تر از متغیر های موجود در کلاس مرجع ذکر شده، میتوانید activity مورد نظری که نیاز به دسترسی به متغیر های کلاس مرجع دارد را نسبت به کلاس مرجع extend کنید. به مثال زیر توجه کنید:

کلاس مرجع: AppConst
اکتیویتی مورد نظر: mycAtivity

public class mycAtivity extends AppConsts
{
}

نکته: اگر این کار انجام دهید، خود کلاس مرجع نیز باید extends شده از کلاس Activity باشد.


از تابع زیر برای بستن شدن 100%، activity مربوطه هنگام فشردن کلید back، استفاده کنید.

@Override
public void onBackPressed() {

android.os.Process.killProcess(android.os.Process. myPid());
// This above line close correctly
}



منتظر سوال های بعدی شما هستم.

موفق باشید.