【问题标题】:AlarmManager and the PendingIntent that failedAlarmManager 和失败的 PendingIntent
【发布时间】:2010-01-12 23:27:25
【问题描述】:

为了学习如何使用 AlarmManager,我创建了一个活动 由一个按钮组成。当按下按钮时 活动创建自己的 Intent 并将其加载到 AlarmManager 3 秒后完成。

所以活动打开,用户按下按钮,活动关闭,3 秒 稍后活动打开,重复。

问题是 3 秒后我没有打开活动,而是得到一个 错误: “应用程序 [myappname] 已意外停止。请尝试 再次。”除非我改为调用 Toast,否则效果很好。

这是按钮的代码:

thanksButton.setOnClickListener(new View.OnClickListener() {
               public void onClick(View view) {
               setResult(RESULT_OK);
               Intent intent = new Intent(myappname.this,
myappnameBroadcastReceiver.class);
               PendingIntent appIntent = PendingIntent.getBroadcast
(myappname.this, 0, intent, 0);
               Calendar calendar = Calendar.getInstance();
               calendar.setTimeInMillis(System.currentTimeMillis());
               calendar.add(Calendar.SECOND, 3);
               AlarmManager am = (AlarmManager)getSystemService
(ALARM_SERVICE);
               am.set(AlarmManager.RTC, calendar.getTimeInMillis(),
appIntent);

               finish();
               }

       });

这是广播接收器:

package com.myappname;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class myappnameBroadcastReceiver extends BroadcastReceiver {
       @Override
       public void onReceive(Context context, Intent intent) {
                       context.startActivity(new Intent(context, myappname.class));
       }
}

这是 manifest.xml 中的行

       <receiver
               android:name=".myappnameBroadcastReceiver"
               android:process=":remote">
       </receiver>

【问题讨论】:

    标签: android android-emulator


    【解决方案1】:

    所以活动打开,用户按下按钮,活动关闭,3 秒后活动打开,重复。

    如果您只想在闹钟响起时开始活动,则不需要任何服务。创建一个 PendingIntent 来启动您的活动,仅此而已。在您的活动课程中尝试此操作 - 在我的代码中使用 MyActivity

    Intent intent = new Intent(MyActivity.this, MyActivity.class);
    PendingIntent appIntent = 
            PendingIntent.getActivity(MyActivity.this, 0, intent, 0);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多