当前位置: 代码迷 >> Android >> 关于AlarmManager的有关问题
  详细解决方案

关于AlarmManager的有关问题

热度:43   发布时间:2016-05-01 22:22:49.0
关于AlarmManager的问题
在学习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上,但是我不知道问题在哪里,希望大家指导。

------解决方案--------------------