M
mc-bain
Neues Mitglied
- 0
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:
AlarmReciever:
Mein Manifest:
Es wäre nett, wenn mir jemand einen Tip geben könnte woran es liegen könnte.
Vielen Dank.
Gruß
mc
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);
}
}
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();
}
}
}
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>
Vielen Dank.
Gruß
mc