精华内容
下载资源
问答
  • 使用的是个推,部分代码如下: Getuiflut().addEventHandler( onNotificationMessageClicked: (Map<String, dynamic> msg) async { print("flutter onNotificationMessageClicked"...
  •  现在也不做这些说明,只说明怎么样在收到通知后,点击通知栏打开相应的界面。当然也是通过查看一些大神书写的文章并实现功能。现在记录一下,方便以后查看。  说明:接入的是三方的极光推送 ,如果...

           通知消息在Android端是一个非常重要的事件,常常会使用到。三方通知也有很多的提供,当然我们也可以自己定义通知栏样式。来满足和实现接收到通知并显示在通知栏上。

            现在也不做这些说明,只说明怎么样在收到通知后,点击通知栏并打开相应的界面。当然也是通过查看一些大神书写的文章并实现功能。现在记录一下,方便以后查看。

             说明:接入的是三方的极光推送 ,如果你不知道怎么接入。那么请你自行去阅读极光推送接入文档。

             当然我们在接收极光推送的时候,必须自定义接收器。这样就能够接收到我们自定义的消息。不然在接收通知的时候有可能接收不到消息,或者不能够打开对应的界面。

               实在抱歉没有图片,因为很多原因。

    /**
     * 自定义接收器
     * 
     * 如果不定义这个 Receiver,则:
     * 1) 默认用户会打开主界面
     * 2) 接收不到自定义消息    
     */
    public class MyReceiver extends BroadcastReceiver {
       private static final String TAG = "JIGUANG-Example";
    
       @Override
       public void onReceive(Context context, Intent intent) {
          try {
             Bundle bundle = intent.getExtras();
             if (JPushInterface.ACTION_REGISTRATION_ID.equals(intent.getAction())) {
                String regId = bundle.getString(JPushInterface.EXTRA_REGISTRATION_ID);
                Log.d(TAG, "[MyReceiver] 接收Registration Id : " + regId);
                //send the Registration Id to your server...
             } else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent.getAction())) {
                Log.d(TAG, "[MyReceiver] 接收到推送下来的自定义消息: " + bundle.getString(JPushInterface.EXTRA_MESSAGE));
                processCustomMessage(context, bundle);
             } else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED.equals(intent.getAction())) {
                Log.d(TAG, "[MyReceiver] 接收到推送下来的通知");
             } else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction())) {
                String type = bundle.getString(JPushInterface.EXTRA_EXTRA);
             } else if (JPushInterface.ACTION_RICHPUSH_CALLBACK.equals(intent.getAction())) {
    //          Logger.d(TAG, "[MyReceiver] 用户收到到RICH PUSH CALLBACK: "bundle.getString(JPushInterface.EXTRA_EXTRA));
             } else if(JPushInterface.ACTION_CONNECTION_CHANGE.equals(intent.getAction())) {
                boolean connected = intent.getBooleanExtra(JPushInterface.EXTRA_CONNECTION_CHANGE, false);
                Log.w(TAG, "[MyReceiver]" + intent.getAction() +" connected state change to "+connected);
             } else {
                Log.d(TAG, "[MyReceiver] Unhandled intent - " + intent.getAction());
             }
          } catch (Exception e){
    
          }
       }
    
    }
    

    自定义接收器,就是对其进行重写的一个方法。当然必须在 manifest中去注册你自定义的接收器

    <!-- User defined。 用户自定义的广播接收器-->
    <receiver
        android:name="你的位置.MyReceiver"
        android:exported="false"
        android:enabled="true">
        <intent-filter>
            <action android:name="cn.jpush.android.intent.REGISTRATION" /> <!--Required  用户注册SDK的intent-->
            <action android:name="cn.jpush.android.intent.MESSAGE_RECEIVED" /> <!--Required  用户接收SDK消息的intent-->
            <action android:name="cn.jpush.android.intent.NOTIFICATION_RECEIVED" /> <!--Required  用户接收SDK通知栏信息的intent-->
            <action android:name="cn.jpush.android.intent.NOTIFICATION_OPENED" /> <!--Required  用户打开自定义通知栏的intent-->
            <action android:name="cn.jpush.android.intent.CONNECTION" /><!-- 接收网络变化 连接/断开 since 1.6.3 -->
            <category android:name="你的包名" />
        </intent-filter>
    </receiver>
    

    现在就是开始介绍怎么样打开对应的页面了。

    当然所对应的操作必须在指定的方法里面才能够执行。

    JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent.getAction()) // 打开通知方法里添加代码操作。

    在这些都熟悉后,最重要的事情现在开始。

    一般在接收到通知后,会有两种可能。

    第一:当APP正在运行的时候;

    第二:当APP已经被杀死

    当然第一种情况比较简单,我们只需要打开对应的Activity就行了。当然如果app的进程虽然仍然在但Task栈已经空了,比如用户点击Back键退出应用,但进程还没有被系统回收,如果直接启动对应Activity,再按Back键就不会返回MainActivity了。所以在启动对应Activity前,要先启动MainActivity。

    Intent mainIntent = new Intent(context, MainActivity.class);
    //将MainAtivity的launchMode设置成SingleTask, 或者在下面flag中加上Intent.FLAG_CLEAR_TOP,
    //如果Task栈中有MainActivity的实例,就会把它移到栈顶,把在它之上的Activity都清理出栈,
    //如果Task栈不存在MainActivity实例,则在栈顶创建
    mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    Intent detailIntent = new Intent(context, 对应Activity.class);
    Intent[] intents = {mainIntent, detailIntent};
    context.startActivities(intents);
    

    这样我们就能够打开所对应的界面了。

    第二种就比较麻烦一点,下面来详细介绍一下。

    如果app进程已经被杀死,先重新启动app,将对应Activity的启动参数传入Intent中,

    参数经过SplashActivity传入MainActivity,此时app的初始化已经完成,

    在MainActivity中就可以根据传入参数跳转到对应Activity中去了。

    Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("你的包名");
    launchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
    Bundle args = new Bundle();
    args.putString("name", "打开通知Activity");
    launchIntent.putExtra(Constants.EXTRA_BUNDLE, args);
    context.startActivity(launchIntent);
    

    然后在SplashActivity里面去接收到通知并做处理。

    Intent intent = new Intent(SplashActivity.this, MainActivity.class);
    //如果启动app的Intent中带有额外的参数,表明app是从点击通知栏的动作中启动的
    //将参数取出,传递到MainActivity中
    if(getIntent().getBundleExtra(Constants.EXTRA_BUNDLE) != null){
        intent.putExtra(Constants.EXTRA_BUNDLE, getIntent().getBundleExtra(Constants.EXTRA_BUNDLE));
    }
    startActivity(intent);

    当将参数传递过去后,我们在MainActivity里面,将接收到的参数进行判断并做出对应的操作。

    if(getIntent().getBundleExtra(Constants.EXTRA_BUNDLE) != null) {
        intentToActivity(对应Activity.class);
    }
    /**
     * 界面跳转
     * @param tarActivity
     */
    protected void intentToActivity(Class<? extends Activity> tarActivity) {
        Intent intent = new Intent(mContext, tarActivity);
        startActivity(intent);
    }
    

    这样我们就能够打开对应的Activity了。

    差点忘记一件大事,就是判断APP是否存活,实在抱歉。

    /**
     * 方法描述:判断某一应用是否正在运行
     * @param context     上下文
     * @param packageName 应用的包名
     * @return true 表示正在运行,false 表示没有运行
     */
    public static boolean isAppRunning(Context context, String packageName) {
       ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
       List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(100);
       if (list.size() <= 0) {
          return false;
       }
       for (ActivityManager.RunningTaskInfo info : list) {
          if (info.baseActivity.getPackageName().equals(packageName)) {
             return true;
          }
       }
       return false;
    }
    

    通过上面的方法,我们就能够打开相应的界面了。

     

    展开全文
  • 大家用安卓手机,是不是经常遇见这种情况:打开手机,通知栏就弹出一堆消息,而且很多还是广告和垃圾消息,手机和自己的神经感觉瞬间要崩溃!然而更崩溃的是,好不容易把这些消息清理干净,用不了多久,就又来了一堆...

    大家用安卓手机,是不是经常遇见这种情况:打开手机,通知栏就弹出一堆消息,而且很多还是广告和垃圾消息,手机和自己的神经感觉瞬间要崩溃!然而更崩溃的是,好不容易把这些消息清理干净,用不了多久,就又来了一堆新的!

    215abbb5636c11f55eb110788b136138.png

    最近上市的HUAWEI Mate30 系列将这个问题被彻底解决了,EMUI10的通知栏真的是清清静静,这到底是怎么做到的呢?

    一、设为静默通知:

    在EMUI10上,你可以一键快速将不重要的应用通知,例如新闻通知等设为静默通知,使其不会发出声音振动、状态栏图标、锁屏显示等重度提醒,让信息静静在通知栏出现。当你想看的时候,还可以下拉通知栏查看。

    7942de54ebf1635dced67ad90d8b5f6a.png

    二、通知亮屏提示:

    手机熄屏状态下,收到通知会自动点亮屏幕,让你不会错过任何重要信息。

    b0fc0ea1c473c813ed643925a61e9c5c.png

    三、隐藏通知内容:

    手机锁定时,可以将通知的预览内容隐藏,不用担心别人看到详细的通知内容。如果设置了人脸识别,机主自己识别成功后可以看通知详情,而别人则无法查看。

    d876a536ea8249a94ce6cefb83cbcdd4.png

    四、滑动关闭通知:

    滑动关闭通知更方便。单次“左滑”显示“设置图标”可以点击“关闭通知”。快速“右滑”可以直接清除通知。

    f33208c300d35c3af6d4988a4a79e0e0.png

    五、通知排序:

    EMUI10上,所有通知都统一按类型、时间排序,看上去更清爽、简洁。让你一目了然,再也不用担心找不到重要通知。

    ff48ca946669e2dc15c3710fc50a4bec.png

    此外,使用手机导航遇到来电时,来电不会全屏覆盖,不用担心来电界面挡住了导航界面,可以更好地保障你的安全。

    HUAWEI Mate30 系列新机上手后,你就会发现重要的通知方便你看,不重要通知不会干扰你,通知管理起来更加简单易用。

    大家可以在华为或荣耀手机主界面下拉搜索【玩机技巧】探索更多好玩的实用功能,点赞评论分享关注都能让我感受到你对我的回答的喜爱。求你了

    ace02f0fff28f4c297dedb2dbb108d81.gif
    展开全文
  • 通知栏url能打开的话,就跳转到相关页面同时打开首页,不能打开打开首页。 这是以前的方式: <pre><code>java ArrayList<intent> intents = new ArrayList<>(); // if ...
  • 项目遇到了个问题,需要得知Application是通过什么方式启动的,大概分成了下面三种情况 1.Launcher打开 2.(如果可以与Launcher打开区分的话)应用...3.通知栏跳转 4.其他应用跳转 这样的需求大概可以怎么实现呢?
  • 在开发项目的时候,发现在App打开的时候,通知栏颜色会发生改变(在某些手机上面会发生这个情况,例如:魅蓝metal),用下面的方法可以解决: style name="zhuchao_theme_to_start" parent="Theme.AppCompat....

    在开发项目的时候,发现在App打开的时候,通知栏颜色会发生改变(在某些手机上面会发生这个情况,例如:魅蓝metal),用下面的方法可以解决:

    <!--这串代码 加给Activity的主题,不是Application  -->
    
    <style name="zhuchao_theme_to_start" parent="Theme.AppCompat.Light.NoActionBar">
    
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <!--这两句代码可以控制通知栏不改变颜色-->
        <item name="android:windowBackground">@drawable/welcome</item>
        <!--这句代码 app启动时会有黑屏或者白屏  这里设置一张图片就是为了覆盖白屏或者黑屏-->
    </style>
    把这个主题设置为启动的Activity的主题,例如我写的项目启动Activity是MainActivity,这样设置即可:

    <activity
        android:name=".MainActivity"
        android:configChanges="keyboardHidden|orientation"
        android:screenOrientation="portrait"
        android:theme="@style/zhuchao_theme_to_start"
        android:windowSoftInputMode="stateUnspecified|adjustPan">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    展开全文
  • Notification 点击通知栏消息怎么打开app。如果此时app正在后台运行怎么直接唤醒app 我的代码如下: ```NotificationManager manager = (NotificationManager)activity.getSystemService(Context....
  • Monit最大的方便是能在通知栏展示,可有许多小伙伴不知道怎么设置,下面由本文为大家带来让Monit在通知栏显示设置教程 我们打开菜单栏的通知,并点击下方编辑 在右侧找到Monit,点击添加 这样Monit马上就能出现在...

    Monit Mac激活版是一款运行在Mac平台上的系统运行状态监测工具,Monit 主要用来检测Mac电脑的CPU、内存、磁盘、网络和电池等详细的各项系统运行状况。Monit最大的方便是能在通知栏展示,可有许多小伙伴不知道怎么设置,下面由本文为大家带来让Monit在通知栏显示设置教程

    我们打开菜单栏的通知,并点击下方编辑

    在右侧找到Monit,点击添加

    这样Monit马上就能出现在你的通知栏界面了。

    展开全文
  • windows电脑通知栏的图标操作起来很方便,但是有时候,通知栏的图标会突然不见了该怎么办呢?下面我们一起来看看解决办法,需要的朋友可以参考下 任务栏下的通知图标不见了 1、打开注册表编辑器...
  • 使用pxpay 作为个人支付宝/微信免签收款.的时候.不成功,是怎么回事?...看看通知栏有没有收钱的通知.如果没有,说明支付宝/微信的通知没有打开. 特别是微信.打开通知还要打语音播报. 还有一个重要的点就是 微...
  • 很多朋友电脑上一起运行许许多多的应用,电脑中运行的程序都会在任务中显示,但仍有很多用户会选择将这些图标隐藏起来,让桌面右下角任务栏通知区域更清爽,下面小编教你电脑怎么隐藏任务图标。电脑怎么隐藏任务...
  • Android 谁做过推送反面的吗? 通知栏是什么原理? 通知栏布局是自己写的吗?  我又是怎么在没打开APP的情况下就能接收到通知栏数据
  • Android 谁做过推送反面的吗? 通知栏是什么原理? 通知栏布局是自己写的吗? 我又是怎么在没打开APP的情况下就能接收到通知栏数据
  • 打开通知栏,点击进和显示内容界面,这时并没有出显示界面,仍停留在绑定界面,当我返回时绑定界面消失,出现显示内容的界面,再返回又出现绑定界面,这是怎么回事? 下面是我仿照着例子写的一个广播类,是实现跳转...
  • 下面我们就来看一下,怎么发送状态栏通知,状态栏通知又有哪些参数可以设置?   首先,发送一个状态栏通知必须用到两个类: NotificationManager 、 Notification。   NotificationManager : 是...
  • 许多朋友在重装完Win10系统后都非常怀念Win7系统的桌面便签功能,每天把工作学习计划内容写在上面非常的方便。其实在Win10系统中也有类似的小工具,即Windows lnk工作区。...2、在打开界面的右侧中找到通知区域下...
  • IOS 8 9 在打开APP时,收到通知时为什么没有弹窗?IOS10就有? 怎么解决这样的问题? 因为点击通知栏时,需要跳转画面,IOS 8 9就直接跳转了
  • 三星手机怎么隐藏状态?有的人不喜欢状态,喜欢更加“干净”的桌面,下面就告诉大家三星手机隐藏状态的方法。三星手机怎么隐藏状态?第一步:安装三星手机驱动(如果已经安装了驱动或系统自动安装的则可忽略这...
  • 首先,我们打开我们的电脑,然后我们点击开始,弹出的界面,我们点击设置; ... 弹出的界面,我们点击任务,然后我们...之后我们将通知区域始终显示所有图标的开关向左滑动关闭就可以了,这样就会显示小三角了。 ...
  • 今天尝试关闭了VS2010开发的MFC Ribbon应用程序的属性界面后,发现在程序上怎么寻找都找不到再次打开的按钮,打开之前的程序版本,重新生成解决方案和编译后还是不行,于是在网上查找资料。得知是应用程序将之前我的...
  • 将光标移到电脑的任务,单击右键,选择“属性”在下面的“通知区域”点击“自定义”点击“打开或关闭系统图标”找到“电源”图标,把这个电源图标打开最后点“确定”保存设置...
  • 在使用win7系统时,一些程序在运行时会自动在任务栏通知区域里显示图标,Win7的这一特性非常方便。但是,烦恼也紧跟着来了,每一个在电脑上运行过的程序,不管你是否删除了它,图标永远都留在那里面了。本教程就为...
  • 1.在xp安装盘下搜索sndvol32.ex_ 2.将sndvol32.ex_拷贝出来并修改...如果安装了winrar,那么可直接双击打开 4.将里面的sndvol32.exe解压缩到xp的windows/system32目录 5.启动“音量控制”并且通知区域中显示音量图标 
  • 不知道你们有没有感觉,反正小编我是有点强迫症。对于电脑桌面,我对简约度的...2、打开任务和{开始}菜单属性窗口,点击通知区域下的“自定义”,如图所示: 3、在弹出的窗口中,取消勾选“始终在任务上显示所...
  • 重置linux任务的命令

    千次阅读 2011-01-03 16:26:00
    <br />在Ubuntu中,桌面上默认的任务菜单面板是上下两,上面是系统菜单和通知区域 下面是窗口存放切换区域,那么作为ubuntu用户来说,你总会使系统用起来更顺手更美观 从而会对面板定制成自己想...
  • 打开了QQ聊天窗口,如果窗口不是当前激活的窗口的话,收到QQ消息时,任务(不是托盘图标)上的图标会闪一下变成黄色(Win7默认主题下),用以通知用户有消息进来了,之前我用C#不知道这是怎么做的,用this....
  • 在Ubuntu(实际是GNOME) 中,桌面上默认的任务菜单面板是上下两,上面(Panel) 是系统菜单和通知区域下面是窗口存放切换区域,那么作为ubuntu用户来说,你总会使系统用起来更顺手更美观从而会对面板定制成自己想...
  • Ubuntu中恢复默认的任务面板

    千次阅读 2010-07-05 22:39:00
    在Ubuntu中,桌面上默认的任务菜单面板是上下两,上面是系统菜单和通知区域 下面是窗口存放切换区域,那么作为ubuntu用户来说,你总会使系统用起来更顺手更美观 从而会对面板定制成自己想要的,比如说用...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

怎么打开通知栏