funktionsweise alarmmanager (?)

  • Antworten:53
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 62

06.11.2012 18:34:25 via Website

Ach das haben sie gemeint ich dachte immer im manifest !!!!

ps leider war das auch nicht die Lösung

AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent AlarmIndent2 = new Intent(getApplicationContext(), TimerAlarmReceiver.class); <-- geändert
PendingIntent AlarmPendIndent2 = PendingIntent.getBroadcast(getApplicationContext(), 192837, AlarmIndent2, PendingIntent.FLAG_UPDATE_CURRENT);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), AlarmPendIndent2);

Antworten
  • Forum-Beiträge: 287

06.11.2012 18:39:37 via Website

<application

..... und alles andere

<receiver
android:name=".TimerAlarmReceiver"
android:enabled="true" />
</application>

Hier nochmal mein vollständiger Code - damits endlich klappt!

//==============================================================================
void RegisterAlarm(long ms)
//==============================================================================
{
Calendar time = Calendar.getInstance();
time.add(Calendar.MILLISECOND, (int) ms);
AlarmManager am = (AlarmManager)BaseApp.getAppContext().getSystemService(Context.ALARM_SERVICE);

Intent AlarmIndent2 = new Intent(BaseApp.getAppContext(), TimerAlarmReceiver.class);
PendingIntent AlarmPendIndent2 = PendingIntent
.getBroadcast(BaseApp.getAppContext(), 192837, AlarmIndent2, PendingIntent.FLAG_UPDATE_CURRENT);
am.cancel(AlarmPendIndent2);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), AlarmPendIndent2);
Log.d("Alarm", "set");
}

//==============================================================================
public class TimerAlarmReceiver extends BroadcastReceiver
//==============================================================================
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("AlarmReceiver", "Fired");

///// Hier reinschreiben was passieren soll

}
}

Antworten
  • Forum-Beiträge: 62

06.11.2012 18:55:05 via Website

habe genommen GridstundenplanAktivity.getAppContext

also die main aktivity;


ICH KRIEG DIE KRIESE DAS FUNZT IMMER NOCH NICHT OBWOHL ICH ALLES GEÄNDERT HABE
:angry:

Antworten
  • Forum-Beiträge: 62

06.11.2012 19:01:04 via Website

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.cojobo.j_bruehl"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".GridstundenplanActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver
android:name=".TimerAlarmReceiver" -----> receiverclass
android:enabled="true" >
</receiver>
</application>

</manifest>

jetzt bekomm ich nen fehler

Antworten
  • Forum-Beiträge: 62

06.11.2012 19:05:28 via Website

Unable to instantiate receiver net.........TimerAlarmReceiver ...........

android:name=".TimerAlarmReceiver" im manifest

Antworten
  • Forum-Beiträge: 62

06.11.2012 19:12:01 via Website

PS KÖNNTE DAS DER FEHLER SEIN !!!!!!!!!

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Intent AlarmIndent2 = new Intent(BaseApp.getAppContext(), TimerAlarmReceiver.class);
^^^^^^^^^^^^^^^^^^^^^^^^
vvvvvvvvvvvvvvvvvvvvv GLEICHER NAME
PendingIntent AlarmPendIndent2 = PendingIntent.getBroadcast(BaseApp.getAppContext(), 192837, AlarmIndent2, PendingIntent.FLAG_UPDATE_CURRENT);
am.cancel(AlarmPendIndent2);
am.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), AlarmPendIndent2);
Log.d("Alarm", "set");

— geändert am 06.11.2012 19:13:25

Antworten
  • Forum-Beiträge: 62

06.11.2012 19:28:32 via Website

Ich möchte mich herzlichst für eure hilfe bedanken

es mag leute geben, die zu viele Bildschirme im Zimmer haben und nicht merken wie sie ne Klasse deklarieren.
Nachdem ich den Fehler bekommen habe, habe ich mal auf die Klasse TimerAl... geschaut und ratet mal, was ich gefunden habe:
ein einsames class ich hab ihm direct mal ne Frau geschenkt,die public heißt und darauf hin hat er mich gefeuert ("fired") :D :D :D

und ich hab mich sehr gefreut und möchte mich für meine Dusseligkeit entschuldigen

Danke für Alles

Julian

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

06.11.2012 19:43:14 via Website

... und hier das ganze in Methoden:

1// Manifest
2<uses-permission
3 android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
4
5<receiver
6 android:exported="false"
7 android:name=".MyBroadcastReceiver" >
8 <intent-filter>
9 <action
10 android:name="android.intent.action.BOOT_COMPLETED" />
11 </intent-filter>
12</receiver>
13
14// Eigene Klasse in eigener Datei
15public class MyBroadcastReceiver extends BroadcastReceiver {
16
17 public static final String TAG = "deinpackage.MyBroadcastReceiver";
18
19 public static final int ACTION_STOP = 1;
20 public static final String ACTION = "ACTION";
21
22 @Override
23 public void onReceive(Context context, Intent intent) {
24 if (intent != null) {
25 Bundle bundleExtras = intent.getExtras();
26 if (bundleExtras != null) {
27 int action = bundleExtras.getInt(ACTION);
28 switch (action) {
29 case ACTION_STOP:
30 // Was immer Du willst
31 break;
32 }
33 }
34 }
35 }
36}
37
38// In Deiner Activity
39private void doStartTimer() {
40 Calendar calendar = Calendar.getInstance();
41 calendar.setTimeInMillis(System.currentTimeMillis());
42 calendar.add(Calendar.MINUTE, 10);
43
44 Intent intent = new Intent(this, MyBroadcastReceiver.class);
45 intent.putExtra(MyBroadcastReceiver.ACTION, MyBroadcastReceiver.ACTION_STOP);
46
47 PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
48 9999, intent, PendingIntent.FLAG_UPDATE_CURRENT);
49
50 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
51 alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
52}
53
54private void doStopTimer() {
55 Intent intent = new Intent(this, MyBroadcastReceiver.class);
56 intent.putExtra(MyBroadcastReceiver.ACTION, MyBroadcastReceiver.ACTION_STOP);
57
58 PendingIntent pendingIntent = PendingIntent.getBroadcast(this,
59 9999, intent, PendingIntent.FLAG_UPDATE_CURRENT);
60
61 AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
62 alarmManager.cancel(pendingIntent);
63
64 pendingIntent.cancel();
65}

— geändert am 06.11.2012 19:48:40

Antworten