【问题标题】:How to handle multiple intent actions in android notification alarm如何在android通知警报中处理多个意图动作
【发布时间】:2015-05-27 11:50:09
【问题描述】:

我的查询是我正在尝试根据不同的条件重定向通知意图,我正在处理警报系统,我需要将通知意图重定向到某个活动,比如 A。如果用户在警报期间单击它播放和完成后,通知应重定向到其他活动(如果那里仍然可用)。这是我的代码。任何帮助将不胜感激!

   private void DisplayNotification(String AlarmName, Context context) {
    // Context context = context.getApplicationContext();
    NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    Intent mIntent;
    SharedPreferences alarmindicator = context.getSharedPreferences(
            "notifyintent", context.MODE_PRIVATE);
    int code;
    SharedPreferences.Editor editor = alarmindicator.edit();
    if (alarmindicator.getBoolean("notifyintentPlaying", true)) {
        mIntent = new Intent(context, AlarmAlertActivity.class);
        Toast.makeText(context, "inalmact", 0).show();
        code = 1;
    }

    else {
        editor.putBoolean("notifyintentPlaying", true);
        editor.commit();
        mIntent = new Intent(context, MainActivity.class);
        // AlarmAlertActivity.this.finish();
        code = 2;
        Toast.makeText(context, "in main act", 0).show();

    }

    Bundle bundle = new Bundle();

    bundle.putString("test", "test");
    mIntent.putExtras(bundle);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, code,
            mIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    Resources res = context.getResources();
    NotificationCompat.Builder builder = new NotificationCompat.Builder(
            context);

    builder.setContentIntent(pendingIntent)
            .setSmallIcon(R.drawable.notifyiconlarg)
            .setLargeIcon(
                    BitmapFactory.decodeResource(res,
                            R.drawable.notifyiconlarg))
            // .setTicker(res.getString(R.string.notification_title))
            .setTicker(AlarmName).setAutoCancel(true)
            .setContentTitle(AlarmName)
            .setContentText("Time to offer " + AlarmName + " Prayers");

    notificationManager = (NotificationManager) context
            .getSystemService(context.NOTIFICATION_SERVICE);

    notificationManager.notify(123, builder.build());
}

【问题讨论】:

    标签: android android-intent android-notifications


    【解决方案1】:

    您必须从通知中触发广播接收器,并且在BroadcastReceiveronReceive() 方法中,您必须决定要启动哪个活动......

    更新

    这样写一个BroadcastReceiver

    public class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            int code;
            Intent mIntent;
            SharedPreferences.Editor editor = alarmindicator.edit();
            if (alarmindicator.getBoolean("notifyintentPlaying", true)) {
                mIntent = new Intent(context, AlarmAlertActivity.class);
                Toast.makeText(context, "inalmact", 0).show();
                code = 1;
            } else {
                editor.putBoolean("notifyintentPlaying", true);
                editor.commit();
                mIntent = new Intent(context, MainActivity.class);
                // AlarmAlertActivity.this.finish();
                code = 2;
                Toast.makeText(context, "in main act", 0).show();
            }
            context.startActivity(intent);
        }
    

    并像这样创建待处理意图

    Intent myIntent=new Intent("some_action")
            PendingIntent pendingIntent = PendingIntent.getBroadcast(context, code,
                    myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      相关资源
      最近更新 更多