首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >警报不重复在提到的时候,为什么?

警报不重复在提到的时候,为什么?
EN

Stack Overflow用户
提问于 2013-05-24 06:28:49
回答 1查看 142关注 0票数 0

我试着每天在9.am.But重复警报--警报不是在正确的时间重复,也就是说,它只是在app.why启动后发出祝酒词?

请提出建议!..

谢谢你宝贵的时间。

请查找我的资料来源以供参考

AndroidAlarmService.java

代码语言:javascript
复制
public class AndroidAlarmService extends Activity {

private PendingIntent pendingIntent;

@Override

public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 Intent myIntent = new Intent(AndroidAlarmService.this, RepeatingAlarm.class);
 pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0);

 AlarmManager aM = (AlarmManager)getSystemService(ALARM_SERVICE);

 Calendar c=Calendar.getInstance();
 c.set(Calendar.HOUR_OF_DAY, 9);
 c.set(Calendar.MINUTE, 0);
 c.set(Calendar.SECOND, 0);


 PendingIntent pi = PendingIntent.getService(getApplicationContext(), 0, new Intent(getApplicationContext(),AndroidAlarmService.class),PendingIntent.FLAG_UPDATE_CURRENT);
 aM.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
 }
 }

RepeatingAlarm.java

代码语言:javascript
复制
public class RepeatingAlarm extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {   
        Toast.makeText(context,"Alarm Started.....", Toast.LENGTH_LONG).show();

    // Vibrate the mobile phone
    Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
    vibrator.vibrate(2000);

        }
    }

main.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>

Manifest.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.exercise.AndroidAlarmService"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<uses-permission android:name="android.permission.VIBRATE" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".AndroidAlarmService"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <service android:name=".MyAlarmService" />
</application>
</manifest>
EN

回答 1

Stack Overflow用户

发布于 2013-05-24 07:07:47

因为您正在创建一个服务PendingIntent,所以没有调用BroadcastReceiver

代码语言:javascript
复制
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 Intent myIntent = new Intent(AndroidAlarmService.this, RepeatingAlarm.class);
 pendingIntent = PendingIntent.getBroadcast(AndroidAlarmService.this, 0, myIntent, 0);

 AlarmManager aM = (AlarmManager)getSystemService(ALARM_SERVICE);

 Calendar c=Calendar.getInstance();
 c.set(Calendar.HOUR_OF_DAY, 9);
 c.set(Calendar.MINUTE, 0);
 c.set(Calendar.SECOND, 0);
 PendingIntent pi = PendingIntent.getService(getApplicationContext(), 0, new Intent(getApplicationContext(),AndroidAlarmService.class),PendingIntent.FLAG_UPDATE_CURRENT);
 aM.setRepeating(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), AlarmManager.INTERVAL_DAY,pendingIntent);
 }
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16728882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档