Simoh نشر 10 مايو 2016 أرسل تقرير مشاركة نشر 10 مايو 2016 أود إدراج خاصية التنبيه مثل تلك الموجود على المنبهات Alarm داخل تطبيق، شريطة أن يقوم التطبيق بهذه العملية كل مدة زمنية احددها أنا، مثلا كل 6 ساعات، فكيف ذلك؟ اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 E.Nourddine نشر 10 مايو 2016 أرسل تقرير مشاركة نشر 10 مايو 2016 (معدل) يحتوي هذا المثال على العديد من الامتيازات، فيما يتعلق باستعمال ذاكرة الجهاز، وكذا عدم استهلاك البطارية: AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.repeatingalarm" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.repeatingalarm.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> <receiver android:name="MyBroadcastReceiver" > </receiver> </application> </manifest> Layout.xml file: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <EditText android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginTop="28dp" android:ems="10" android:hint="Number of seconds" android:inputType="numberDecimal" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="20dp" android:layout_marginTop="95dp" android:onClick="startAlert" android:text="Make repeat" /> </RelativeLayout> MyBroadcastReceiver java class: /** * */ package com.example.repeatingalarm; import java.util.Date; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.widget.Toast; /** * @author Prabu * */ public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, new Date().toString(), Toast.LENGTH_SHORT).show(); } } Activity java class: باستعمال setRepeating package com.example.repeatingalarm; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.Toast; /** * @author Prabu * */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void startAlert(View view) { EditText text = (EditText) findViewById(R.id.time); int i = Integer.parseInt(text.getText().toString()); Intent intent = new Intent(this, MyBroadcastReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (i * 1000), (i * 1000), pendingIntent); /*alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (i * 1000), 8000, pendingIntent);*/ Toast.makeText(this, "Starting alarm in " + i + " seconds", Toast.LENGTH_LONG).show(); } } النتيجة: باستعمال setInexactRepeating: package com.example.repeatingalarm; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.Toast; /** * @author Prabu * */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_main, menu); return true; } public void startAlert(View view) { EditText text = (EditText) findViewById(R.id.time); int i = Integer.parseInt(text.getText().toString()); Intent intent = new Intent(this, MyBroadcastReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast( this.getApplicationContext(), 234324243, intent, 0); AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); /*alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (i * 1000), (i * 1000), pendingIntent);*/ alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (i * 1000), 8000, pendingIntent); Toast.makeText(this, "Starting alarm in " + i + " seconds", Toast.LENGTH_LONG).show(); } } النتيجة: يمكنك تحميل المثال :RepeatingAlarm.zip المصدر : How to make alarm repeat in Android code تم التعديل في 10 مايو 2016 بواسطة E.Nourddine اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 msh97 نشر 11 مايو 2016 أرسل تقرير مشاركة نشر 11 مايو 2016 عندي سؤال بعيدآ عن الموضوع هل برمجة تطبيقات الاندرويد تحتاج الى شخص ذكي في الرياضيات اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Simoh
أود إدراج خاصية التنبيه مثل تلك الموجود على المنبهات Alarm داخل تطبيق، شريطة أن يقوم التطبيق بهذه العملية كل مدة زمنية احددها أنا، مثلا كل 6 ساعات، فكيف ذلك؟
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.