我在活动中使用待处理的意图。
Intent intent = new Intent(this, MyActivity.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 34433,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + (5000), pendingIntent);
这里我将从一个活动(MainActivity)转到另一个活动(MyActivity)。 但它没有用。
如果我尝试用简单的Intent来做它然后它工作正常。
答案 0 :(得分:3)
您已请求PendingIntent
开始BroadcastReceiver
,但您正尝试启动Activity
。这不起作用。
如果你想开始Activity
,而不是这个:
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 34433,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
这样做:
PendingIntent pendingIntent = PendingIntent.getActivity(this, 34433,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
答案 1 :(得分:0)
您还可以使用带PendingIntent的广播接收器来开始另一项活动。
创建另一个类,例如receiver作为BroadcastReceiver的子类
public class receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent)
{
// code to start another activity
Intent intent = new Intent(context.getApplicationContext(), MyActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
}
并在Android menifest文件中将MyActivity定义为接收器 并在主要活动中更改此代码 MyActivity.class到receiver.class
Intent intent = new Intent(this, receiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 34433,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + (5000), pendingIntent);