1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. mc-bain, 25.01.2012 #1
    mc-bain

    mc-bain Threadstarter Neuer Benutzer

    Hi,
    wie bereits erwähnt, funktioniert der Alarmmanager weder auf meinem Handy noch auf nem Emulator. Es wird zwar der PendingIntent geschickt, aber es erfolgte keine Reaktion, bzw. kommt beim OnRecieve Event von AlarmReciever nie etwas an.

    Ich habe folgende Klassen:

    Test_Alarmmanager:
    Code:
    package test.alarmmanager;
    
    import java.util.Calendar;
    
    import android.app.Activity;
    import android.app.AlarmManager;
    import android.app.PendingIntent;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    
    public class Test_AlarmmanagerActivity extends Activity {
        private Button mButton;
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            mButton = (Button) findViewById(R.id.button1);
            
            mButton.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    sendIntent();
                    
                    
                }
            });       
            
           
        }
        public void sendIntent() {
             Calendar cal = Calendar.getInstance();
                // add 5 minutes to the calendar object
                cal.add(Calendar.SECOND, 5);
                Intent intent = new Intent(this, AlarmReceiver.class);
                intent.putExtra("alarm_message", "O'Doyle Rules!");
                // In reality, you would want to have a static variable for the request code instead of 192837
                PendingIntent sender = PendingIntent.getBroadcast(this, 192837, intent, PendingIntent.FLAG_UPDATE_CURRENT);
                
                // Get the AlarmManager service
                AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
                am.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender);
            
        }
    }
    AlarmReciever:
    Code:
    package test.alarmmanager;
    
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.widget.Toast;
    import android.os.Bundle;
     
    public class AlarmReceiver extends BroadcastReceiver {
     
     @Override
     public void onReceive(Context context, Intent intent) {
       try {
         Bundle bundle = intent.getExtras();
         String message = bundle.getString("alarm_message");
         Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
         Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show();
         e.printStackTrace();
     
        }
     }
     
    }
    Mein Manifest:
    HTML:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="test.alarmmanager"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk android:minSdkVersion="10" />
         <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" android:debuggable="true">
            <activity
                android:label="@string/app_name"
                android:name=".Test_AlarmmanagerActivity" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <receiver  android:process=":remote" android:name="AlarmReceiver"></receiver>
        </application>
    
    </manifest>
    Es wäre nett, wenn mir jemand einen Tip geben könnte woran es liegen könnte.
    Vielen Dank.
    Gruß
    mc
     
  2. strider, 25.01.2012 #2
    strider

    strider Erfahrener Benutzer

    Der AlarmManager wird bei RTCWAKEUP versuchen sich ein wakelock zu holen um zu garantieren das onReceive() komplett durchläuft. Warum er das in diesem Fall nicht machen kann sag ich aber nicht :tongue:
    Eine Suche wird die Lösung aber sehr rasch manifestieren.
     
    Zuletzt bearbeitet: 25.01.2012
  3. mc-bain, 26.01.2012 #3
    mc-bain

    mc-bain Threadstarter Neuer Benutzer

    Danke für deine Antwort.
    Ich konnte den Fehler in der Manifestdatei finden.
    Es hatte der Punkt vor AlarmReciever gefehlt. Es muss heißen:
    Code:
    <reciever android:process =":remote" android:name="[COLOR=Red].[/COLOR]AlarmReciever" />
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[OFFEN] Google-Spracherkennung funktioniert nicht im Tablayout Android App Entwicklung 20.04.2017
[ERLEDIGT] TextView text "Heute ist der dd.MM.yyyy" funktioniert überhaupt nicht Android App Entwicklung 08.03.2017
Excel Dokument mithilfe von JExcelAPI auslesen funktioniert nicht :/ Android App Entwicklung 02.03.2017
adb starten funktioniert nicht Android App Entwicklung 25.02.2017
Wie setze ich einen AlarmManager auf feste MonatsIntervalle ? Android App Entwicklung 20.02.2017
AS-Emulator & Smartwatch-Source funktioniert nicht Android App Entwicklung 27.01.2017
Timer + setText funktioniert nicht Android App Entwicklung 20.01.2017
Wie funktioniert die Autom. Anpassung an die Displaygröße (Multiple Sreens) ? Android App Entwicklung 19.01.2017
Permission Abfrage funktioniert nicht mehr Android App Entwicklung 15.01.2017
Login funktioniert nicht Android App Entwicklung 05.01.2017
Du betrachtest das Thema "Alarmmanager funktioniert nicht." im Forum "Android App Entwicklung",