在学习AlarmManager的使用方法的时候,遇到了问题,一个很简单的实例代码,但是总是不出效果,在此请教大家:
SetAlarm.java
- Java code
import android.app.Activity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.util.Log;public class SetAlarm extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent = new Intent(this,AlarmReceiver.class); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager am = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 20*1000, pi); Log.i("Ray","Alarm has been set"); // Intent in = new Intent();// in.setClass(this, AlarmReceiver.class);// this.sendBroadcast(in); }}
AlarmReceiver.java
- Java code
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.util.Log;import android.widget.Toast;public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.v("Ray","AlarmRecerver get something"); Toast.makeText(context, "Ray", Toast.LENGTH_SHORT).show(); }}
Manifest
- XML code
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="test.ray.alarm" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SetAlarm" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <receiver android:name=".AlarmReceiver" android:process=":remote"> </receiver> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.SET_WALLPAPER" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /></manifest>
这里很多权限都是不必要的,我纯粹是为了保证权限不会出问题。貌似这个实例代码,一个权限也不需要添加的吧?
估计问题出在AlarmReceiver上,但是我不知道问题在哪里,希望大家指导。
------解决方案--------------------