آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در پیاده سازی یک سرویس

Ali.Ab  10 سال پیش  10 سال پیش
0 0

سلام. من توسط کدهای زیر تعریف کردم که هروقت صفحه روشن شد یک پیغام نمایش داده بشه و البته برنامه به خوبی کار میکنه. مشکل اینجاست که وقتی میخوام همین کار رو توسط سرویس انجام بدم با ارور مواجه مشم. یعنی میخوام حتی زمانی که در برنامه نیستم به محض روشن شدن صفحه (باز شدن قفل صفحه) پیغام نمایش داده بشه...

لطفا بگید کدهای زیر رو چطور درون سرویس قرار بدم تا بفهمم مشکل از کجاست. ممنون از همه

//کدهای MainActivity 
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); filter.addAction(Intent.ACTION_SCREEN_OFF); BroadcastReceiver mReceiver = new ScreenReceiver(); registerReceiver(mReceiver, filter); } public class ScreenReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){ Log.w("BAM", "Screen went on"); Toast.makeText(getApplicationContext(), "قفل باز شد", Toast.LENGTH_SHORT).show(); } } }


//کدهای کلاس Reciver
public class Receiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_SCREEN_ON)){ Log.w("BAM", "Screen went on"); } } }
0 0
نیازی به سرویس ندارید اگر برودکست ریسیور مربوطه وجود داره از همون استفاده کنید و در منیفست رجیسترش کنید، زمانیکه برنامه بسته هم باشه باز خبر میده ، اما چون شما برودکست رو در کد رجیستر کردید فقط زمانی که کلاس مربوطه ساخته بشه (در حال اجرای برنامه) کار خواهد کرد . (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .