kaka2020 نشر 17 يوليو 2016 أرسل تقرير نشر 17 يوليو 2016 ممكن مساعد في طريقة ضبط أكثر من منبه في اليوم وكل منبه يحمل إشعار معين للمستخدم هل يتم استخدام service او broadcast او الاثنين معا برجاء المساعدة اقتباس
0 هشام رزق الله نشر 22 يوليو 2016 أرسل تقرير نشر 22 يوليو 2016 أعرف طريقة باستخدام service وbroadcast معا، وهي عن طريق استخدام BroadcastReceiver والتي ستعرض الإشعار وعن طريق AlarmManager التي سنستخدمها لجدولة أوقات العرض. سيحتوي ملف MainActivity.java على التالي: package com.example; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; public class MainActivity extends Activity { private PendingIntent pendingIntent; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.MONTH, 6); calendar.set(Calendar.YEAR, 2013); calendar.set(Calendar.DAY_OF_MONTH, 13); calendar.set(Calendar.HOUR_OF_DAY, 20); calendar.set(Calendar.MINUTE, 48); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.AM_PM,Calendar.PM); Intent myIntent = new Intent(MainActivity.this, MyReceiver.class); pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent,0); AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(), pendingIntent); } //end onCreate } بعد ذلك سننشئ ملف آخر باسم MyReceiver.java والذي سيحتوي على BroadcastReceiver كما في المثال التالي: package com.example; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent service1 = new Intent(context, MyAlarmService.class); context.startService(service1); } } وحتى نتمكن من تشغيل الاشعارات حتى لو لم يكن التطبيق مفتوح سننشئ الخدمة - service خاصة بتطبيقنا كما في المثال التالي: package com.example; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.IBinder; public class MyAlarmService extends Service { 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); mManager = (NotificationManager) this.getApplicationContext().getSystemService(this.getApplicationContext().NOTIFICATION_SERVICE); Intent intent1 = new Intent(this.getApplicationContext(),MainActivity.class); Notification notification = new Notification(R.drawable.ic_launcher,"This is a test message!", System.currentTimeMillis()); intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP| Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingNotificationIntent = PendingIntent.getActivity( this.getApplicationContext(),0, intent1,PendingIntent.FLAG_UPDATE_CURRENT); notification.flags |= Notification.FLAG_AUTO_CANCEL; notification.setLatestEventInfo(this.getApplicationContext(), "AlarmManagerDemo", "This is a test message!", pendingNotificationIntent); mManager.notify(0, notification); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } } وسيكون محتوى ملف AndroidManifest.xml الخاص بشكل التطبيق كالتالي: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.NextActivity" android:label="Next Screen"> </activity> <service android:name=".MyAlarmService" android:enabled="true" /> <receiver android:name=".MyReceiver"/> </application> </manifest> أرجو أن يفيدك هذا المثال البسيط. للمزيد من المعلومات حول استخدام BroadcastReceiver وAlarmManager أنصحك بالإطلاع على هذا الموضوع. اقتباس
0 kaka2020 نشر 28 يوليو 2016 الكاتب أرسل تقرير نشر 28 يوليو 2016 اشكرك اخي الكريم علي مساعدتك لي ولكن انا ارغب بظبط المنبه بتوقيتين مختلفين وكل منبه يعطي اشعار ويكون التنبيه يوميا لكون شاكر مره تانيه لو ساعدتني اقتباس
السؤال
kaka2020
ممكن مساعد في طريقة ضبط أكثر من منبه في اليوم وكل منبه يحمل إشعار معين للمستخدم هل يتم استخدام service او broadcast او الاثنين معا برجاء المساعدة
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.