待处理的意图无法正常工作

3

我正在活动中使用待处理意图。

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,那么它可以正常工作。


你的 MyActivity 是否继承自 Activity? - Ando Masahashi
2个回答

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);

David Wassser,你能帮我解决这个问题吗??https://dev59.com/ynrZa4cB1Zd3GeqP6820 - Nitish Srivastava

0

你也可以使用带有PendingIntent的广播接收器来启动另一个活动。

创建另一个类,例如接收器作为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清单文件中将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);

是的,我也做了同样的事情,但是活动怎么办? - Nitish Srivastava
Intent intent = new Intent(context.getApplicationContext(), MyActivity.class); 将从接收器启动MyActivity。 - kiran boghra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接