从通知中获取Toast消息

时间:2018-01-05 15:09:42

标签: android

当我点击其中一个通知变种时,是否可以显示Toast?我试图通过意图向另一个班级发送这个Toast但是找不到这样做的方法。 此外,我试图只是创建另一个类的意图,它只是在被调用时创建一个Toast消息的功能,但这不起作用,因为在创建通知时显示Toast。请帮忙。感谢。

    Intent intent = new Intent();

    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(this);

    builder.setTicker("Info")
            .setContentTitle("Info ")
            .setContentText("NotiText")
            .addAction(R.drawable.ic_stat_name, "This should make Toast upon clicking", pendingIntentCall)
.setSmallIcon(R.drawable.ic_stat_name).setAutoCancel(true);

1 个答案:

答案 0 :(得分:0)

你的intent什么也没做。将Intent传递给PendingActivity.getActivity(...)时,必须将其定义为Activity的显式意图。例如:

Intent intent = new Intent(this, SomeActivity.class);

但是如果你只想展示一个祝酒词,那么最好不要开始一个活动,因为那样做是非常昂贵的。相反,您也可以为服务或广播创建PendingIntent。例如:

Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);

MyBroadcastReceiver.java看起来像这样(基本上):

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context.getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();
    }
}

顺便说一下,建议在创建时为意图添加一个动作或额外动作,并在收到意图时检查该动作或额外动作,以验证它实际上是您希望接收的意图。