Java 警报接收器和Android清单
我找到了一些关于设置闹钟接收器以设定的时间间隔发送祝酒词的教程。我一直在遵循代码,并将我自己的项目分为3类 HelloDroidActivity.java是:Java 警报接收器和Android清单,java,android,broadcastreceiver,Java,Android,Broadcastreceiver,我找到了一些关于设置闹钟接收器以设定的时间间隔发送祝酒词的教程。我一直在遵循代码,并将我自己的项目分为3类 HelloDroidActivity.java是: package com.example.helloandroid; import java.util.Calendar; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import andr
package com.example.helloandroid;
import java.util.Calendar;
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;
import android.widget.TextView;
import android.widget.Toast;
import com.example.helloandroid.alarms.MyAlarmReciever;
public class HelloDroidActivity extends Activity {
/** Called when the activity is first created. */
public static int RTC_WAKEUP;
public static long INTERVAL_FIFTEEN_MINUTES;
private AlarmManager alarmMgr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, Krishneel");
setContentView(tv);
Toast.makeText(this, "Alarm went off", Toast.LENGTH_SHORT).show();
Log.d("OnCreate", "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd");
alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(this, MyAlarmReciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 5);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), 7000, pendingIntent);
}
}
还有MyAlarmReceiver.java(我已经注意到名称上的拼写错误):
Android清单如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.helloandroid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name="com.example.helloandroid.HelloDroidActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name="AlarmReceiver">
<intent-filter>
<action android:name="com.example.helloandroid.alarms" />
</intent-filter>
</receiver>
</application>
</manifest>
我已经读到为了让项目接收我的alarmReceiver java类,我需要用一个新的接收器编辑清单。但我对XML相当陌生,不知道该朝哪个方向走 在您的清单中,接收方正在侦听一个名为
com.example.helloandroid.alarms
的操作。但是在您的HelloDroidActivity.java
中,没有将这样的操作添加到意图中
public class HelloDroidActivity extends Activity {
//....
@Override
public void onCreate(Bundle savedInstanceState) {
//....
Intent intent = new Intent(this, MyAlarmReciever.class);
intent.setAction("com.example.helloandroid.alarms");
//....
}
}
清单文件中已经定义了一个接收者。但是名称不正确请参见名称需要是完整的类名,即package.RecieverName。在你的情况下,你的接收者的名字是MyAlarmReceiver。因此,接收器的定义如下
<receiver android:name=".alarms.MyAlarmReciever">
<intent-filter>
<action android:name="com.example.helloandroid.alarms" />
</intent-filter>
</receiver>
我在教程中使用的一个网站就是看看这个,这个网站对我很有用。
<receiver android:name=".alarms.MyAlarmReciever">
<intent-filter>
<action android:name="com.example.helloandroid.alarms" />
</intent-filter>
</receiver>