BroadcastReceiver et AlarmManager Android
Je suis en train d'essayer d'utiliser une alarme gestionnaire de BroadcastReceiver. J'essaie d'utiliser l'exemple donné dans Tutoriel: Système de Services et de BroadcastReceiver . mais quand je lance l'exemple après la fin de l'époque le pain ne se présentent pas. le code est ci-dessous:
Mon Activité principale:
public class AlarmActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_alarm);
}
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.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()
+ (i * 1000), pendingIntent);
Toast.makeText(this, "Alarm set in " + i + " seconds",
Toast.LENGTH_LONG).show();
}
}
mon broadCastReceiver:
public class MyBroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Don't panic but your time is up!!!!.",
Toast.LENGTH_LONG).show();
//Vibrate the mobile phone
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2000);
}
}
ma page principale:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Number of seconds"
android:inputType="numberDecimal" >
</EditText>
<Button
android:id="@+id/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="startAlert"
android:text="Start Counter" >
</Button>
</LinearLayout>
et la manifestfile:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.broadcastreceiver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.VIBRATE" >
</uses-permission>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.broadcastreceiver.AlarmActivity"
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="com.example.android_alarm.MyBroadcastReceiver" >
</receiver>
</application>
</manifest>
Pourriez vous s'il vous plaît mettre à jour le lien vers le réel tutoriel et pas la page principale? Difficile de trouver le bon exemple que vous avez mentionné, sans que le lien.
fait
avez-vous jamais obtenir que cela fonctionne? J'ai tout essayé, et toujours, la mienne ne fonctionne pas.
Merci pour cela, je ne savais pas que le récepteur d'alarme nécessaire pour être dans le manifeste.
fait
avez-vous jamais obtenir que cela fonctionne? J'ai tout essayé, et toujours, la mienne ne fonctionne pas.
Merci pour cela, je ne savais pas que le récepteur d'alarme nécessaire pour être dans le manifeste.
OriginalL'auteur zied | 2014-01-29
Vous devez vous connecter pour publier un commentaire.
Le récepteur doit s'étendre à partir BroadcastReceiver
Assurez-vous également que le nom de récepteur dans le fichier manifeste est correct.
OriginalL'auteur sudanix
votre MyBroadcastReceiver classe est mal placer ce code
vous devez simplement ajouter "extends BroadcastReceiver"
et obtenir onReceive() méthode de remplacement.
OriginalL'auteur Rajan
Vous avez juste oublié de remplacer
OnReceive()
méthode.public void onReceive(Context context, Intent intent)
est prédéfini méthode de BroadcastReceiver, wheneven vous l'utilisez, Vous devez @Override comme suit,OriginalL'auteur user3243163
Vous avez créé un startAlert fonction u n'a pas appeler de n'importe où.Alors d'abord appeler cette méthode onCreate, et vous recevrez ensuite un toast.
OriginalL'auteur Malti Devnani