CN113342548A - 一种基于Toast实现的消息通知方法、装置、设备及存储介质 - Google Patents
一种基于Toast实现的消息通知方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113342548A CN113342548A CN202110692084.XA CN202110692084A CN113342548A CN 113342548 A CN113342548 A CN 113342548A CN 202110692084 A CN202110692084 A CN 202110692084A CN 113342548 A CN113342548 A CN 113342548A
- Authority
- CN
- China
- Prior art keywords
- toast
- activity page
- activity
- displayed
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000000694 effects Effects 0.000 claims abstract description 244
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012827 research and development Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明涉及消息研发框架的技术领域,揭露了一种基于Toast实现的消息通知方法、装置、设备及存储介质。所述方法包括:在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,通过第一Activity页面获取Activity的最外层布局;在确定第一Activity页面对应的Activity的最外层布局中存在第一Toast对应的ToastView时,将ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;在确定临时变量不为空值时,将除第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在第二Activity页面中,弹出第一Toast并令第一Toast展示待显示文字,同时将临时变量设置成空值。本发明能使用户有足够的时间去了解第一Toast中显示的通知消息。
Description
技术领域
本发明涉及消息研发框架的技术领域,尤其揭露了一种基于Toast实现的消息通知方法、装置、设备及存储介质。
背景技术
Toast是Android应用开发中比较常用的一种提示组件。但是在Android 6.0版本以后,Toast被系统的通知队列所管理,若用户恰好关闭系统的通知权限,这将导致系统提供的Toast无法正确地通过APP显示界面提示给用户,此时用户不能通过Toast得到系统的通知信息,影响到用户体验。因此优化Toast或者自己定制Toast显得尤为重要,但自己定制的Toast是没有系统级别的弹窗权限,所以无法在系统层面进行弹窗显示。现有技术中,还会使用Activity去实现Toast的弹出显示,但现有技术中存在以下问题:在用Activity实现Toast的弹出显示的过程中,若Activity页面被快速关闭,则将导致Toast消失,此时用户可能根本还没有获悉到消息通知。例如,当APP中的A显示页面弹出了一个Toast,若此时A显示页面(Activity页面)被用户不小心快速关闭了,则Toast也会一起跟随A显示页面消失。针对上述问题,本领域技术人员亟需寻找一种新的技术方案。
发明内容
基于此,有必要针对上述技术问题,提供一种基于Toast实现的消息通知方法、装置、设备及存储介质,解决现有技术中的用户未完成了解Toast中显示的通知消息的问题。
一种基于Toast实现的消息通知方法,包括:
在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局;
在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView时,获取所述ToastView中text设置的待显示文字,并将所述ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;
在确定所述临时变量不为空值时,将除所述第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在所述第二Activity页面中,弹出所述第一Toast并令所述第一Toast显示所述待显示文字,同时将所述临时变量设置成空值;所述临时变量不为空值是指所述第一Toast显示的待显示文字的显示时长未超过预设显示时长。
一种基于Toast实现的消息通知装置,包括:
获取模块,用于在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局;
设置模块,用于在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView时,获取所述ToastView中text设置的待显示文字,并将所述ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;
弹出模块,用于在确定所述临时变量不为空值时,将除所述第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在所述第二Activity页面中,弹出所述第一Toast并令所述第一Toast显示所述待显示文字,同时将所述临时变量设置成空值;所述临时变量不为空值是指所述第一Toast显示的待显示文字的显示时长未超过预设显示时长。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于Toast实现的消息通知方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于Toast实现的消息通知方法。
上述一种基于Toast实现的消息通知方法、装置、设备及存储介质,本发明在Android6.0以上系统,将不会受到用户关闭系统通知权限的影响;本发明通过Activity的最外层布局来实现自定制的Toast在系统层面的弹窗显示功能,且能提高研发人员的工作效率,而且可自定制Toast的样式,较好的适应APP的整体风格;本发明能通过ActivityLifecycle接口确定第一Activity页面是否是在预设显示时长后正常关闭,若第一Activity页面是在预设显示时长内关闭的,此时确定第一Activity页面不是正常关闭,且意味着第一Toast也将消失,因此可在下一个最上层的Activity页面(第二Activity页面)继续弹出的第一Toast,以确保上一次弹出的第一Toast的消息(待显示文字)能再次显示,提高消息的感知性,同时将消息通知的作用延伸到下一个最上层的Activity页面,不仅可以让用户了解到正确的消息,而且能使用户有足够的时间去了解第一Toast中的消息。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中一种基于Toast实现的消息通知方法的一应用环境示意图;
图2是本发明一实施例中一种基于Toast实现的消息通知方法的一流程图;
图3是本发明一实施例中一种基于Toast实现的消息通知装置的结构示意图;
图4是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种基于Toast实现的消息通知方法,可应用在如图1的应用环境中,其中,客户端通过网络与服务器进行通信。其中,客户端可以包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种基于Toast实现的消息通知方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S10,在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局;
可理解地,Toast是安卓系统的一种可视化的弹窗组件,且该弹窗组件中可设置弹窗消息,在基于安卓系统运行的显示页面中都可进行弹出,其中,该组件的主要作用是对打开一个显示页面的用户进行消息通知,如提示用户密码输入错误等,此时Toast显示的文字可为“用户密码输入错误”等;Activity页面为用户操作的可视化界面,可理解为安卓系统运行过程中的显示页面,其中,Activity页面与Activity关联,而Activity是安卓系统的四大组件之一;Activity的最外层布局包括但不限于标题栏、内容栏和状态栏,其中ToastView属于内容栏;第一Activity页面是从多个Activity页面中选取的最上层的Activity页面,其对应一个Activity的最外层布局,第一Activity页面相对于其他Activity页面是新创建的,且位于安卓系统中的栈顶中(Activity栈)。
S20,在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView时,获取所述ToastView中text设置的待显示文字,并将所述ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;
可理解地,ToastView是用于显示Toast弹窗中的待显示文字,具体是在ToastView中的text位置处设置,待显示文字为Activity的最外层布局的内容栏,待显示文字一般可以认为是Toast弹窗所要提示用户的消息,另外ToastView在预设显示时长之前会被设置为用户可见状态,ToastView在预设显示时长后被设置为用户不可见状态;临时变量是保持在ActivityLifecycle接口中,且是以临时变量tag的形式进行存储,假设预设显示时长为2s时,若显示时长超过2s,临时变量会被设置成空值,也即被设置成null值;ActivityLifecycle接口全称为ActivityLifecycle Callbacks,运用于安卓系统中,另外在新的Activity页面被创建成功时(当一个新的Activity页面被创建成功时,新的Activity页面会放在栈顶,之前的Activity页面会位于这个新的Activity页面之下,如本提案中的第一Activity页面和第二Activity页面之间的关系),在ActivityLifecycle接口查询临时变量在预设显示时长后是否为空值。
S30,在确定所述临时变量不为空值时,将除所述第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在所述第二Activity页面中,弹出所述第一Toast并令所述第一Toast显示所述待显示文字,同时将所述临时变量设置成空值;所述临时变量不为空值是指所述第一Toast的待显示文字的显示时长未超过预设显示时长。
可理解地,第二Activity页面是新创建的Activity页面,展示顺序是位于第一Activity页面之前的最上层的Activity页面,因此第一Activity页面和其他Activity页面都将会被放入后台中;在通过ActivityLifecycle接口查询到临时变量tag不为空值时,此时说明上一次弹出的第一Toast中的待显示文字(消息)的显示时长并未超过预设显示时长时,第一Activity页面就被关闭掉;另外在在通过ActivityLifecycle接口查询到临时变量tag为空值时,此时说明上一次弹出的第一Toast中的待显示文字的显示时长超过预设显示时长时,第一Activity页面才被关闭掉。本实施例是基于ActivityLifecycle接口实现Activity页面交替。
在步骤S10至步骤S30的实施例中,本发明在Android6.0以上系统,将不会受到用户关闭系统通知权限的影响;本发明通过Activity的最外层布局来实现自定制的Toast在系统层面的弹窗显示功能,且能提高研发人员的工作效率,而且可自定制Toast的样式,较好的适应APP的整体风格;本发明能通过ActivityLifecycle接口确定第一Activity页面是否是在预设显示时长后正常关闭,若第一Activity页面是在预设显示时长内关闭的(此时由于关闭时间很快,可认为用户是认为不小心关闭掉第一Activity页面),此时确定第一Activity页面不是正常关闭,且意味着第一Toast也将消失,因此可在下一个最上层的Activity页面(第二Activity页面)继续弹出的第一Toast,以确保上一次弹出的第一Toast的消息能再次显示,提高消息的感知性,同时将消息通知的作用延伸到下一个最上层的Activity页面,不仅可以让用户了解到正确的消息,而且能使用户有足够的时间去了解第一Toast中的消息(待显示文字)。
进一步地,所述将安卓系统中的最上层的Activity页面作为第一Activity页面之前,还包括:
通过所述ActivityLifecycle接口对每一个所述Activity页面的应用生命周期进行回调管理。
可理解地,Activity页面存在一个生命周期,可通过ActivityLifecycle接口对Activity页面进行回调管理,而通过回调管理可实现对Activity页面的生命周期进行跟踪和监听(具体方式包括onActivityCreated和onActivityDestroyed等,从而可实现低内存回收和修改权限、管理Activity页面、获取当前Activity页面等作用),其中,生命周期可总结成四个状态,包括:1、运行中(此时Activity页面位于栈顶,是用户可见状态,并且可以与用户交互);2、暂停(是用户可见状态,但不可以与用户进行交互);3、停止(一个Activity页面被另一个Activity页面完全覆盖);4、销毁(将Activity页面从栈里移除销毁,被系统回收)。
进一步地,所述将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局,包括:
通过所述ActivityLifecycle接口获取安卓系统中的最上层的所述Activity页面,并将其作为所述第一Activity页面;
根据所述第一Activity页面获取与其关联的唯一安卓ID,并通过所述第一Activity页面关联的唯一安卓ID获取所述Activity的最外层布局。
可理解地,安卓ID为android.R.id.content,通过该安卓ID可获取到与第一Activity页面对应的Activity的最外层布局,其中,该安卓ID是安卓系统所固定的,content可用于容纳Activity的最外层布局。
进一步地,所述通过所述第一Activity页面获取Activity的最外层布局之后,还包括:
在确定所述第一Activity页面对应的所述Activity的最外层布局不存在所述第一Toast对应的ToastView时,获取新创建的一个与所述第一Toast对应的ToastView,并将所述ToastView添加至所述第一Activity的最外层布局中;
在所述ToastView中设置所述待显示文字。
可理解地,本实施例的目的是为了创建出一个ToastView,进而通过ToastView将待显示文字显示至Toast弹窗中,基于Activity页面去添加ToastView,不存在内存泄漏和Activity页面关闭最外层布局则关闭ToastView的问题,进而提高用户的体验效果。
进一步地,所述确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView之后,还包括:
将与第二Toast所对应的所述ToastView中的文字更改成所述待显示文字,并将所述ToastView的状态设置为用户可见状态;所述第二Toast弹出顺序位于所述第一Toast之前;一个所述ToastView对应一个所述第一Activity页面弹出的所述第一Toast和第二Toast。
可理解地,一个Activity页面只会去添加一个ToastView;在一个相同的第一Activity页面中,第一Toast和第二Toast使用相同的ToastView。本实施例设置的目的是为了杜绝每次要弹出Toast都去创建出一个ToastView的现象,通过本实施例可服用安卓系统的资源,节省内存开销,因此通过本实施可直接更改唯一一个ToastView的待显示文字,并直接设置为用户可见状态即可。
进一步地,所述将所述临时变量设置成空值之后,还包括:
在确定所述临时变量依旧保持为空值时,确定上次显示的所述第一Toast在所述预设显示时长内已正常显示完毕,并在下一个新创建且位于最上层的Activity页面中,确定在预设时间阈值内是否需弹出第三Toast;所述第三Toast是指安卓系统除所述第一Activity页面和第二Activity页面之外的位于最上层的Activity页面中所需弹出的Toast;
在确定需要弹出所述第三Toast时,获取所述第三Toast待显示的目标文字,令所述第三Toast进行弹出,同时展示所述第三Toast中的目标文字;
重新确定所述第三Toast对应的临时变量是否保持为空值;
在所述第三Toast对应的临时变量依旧保持为空值时,确定上次显示的所述第三Toast在所述预设显示时长内已正常显示完毕。
可理解地,本实施例是针对于在第一Activity页面和第二Activity页面之下所新创建出Activity页面的过程,此时需先确定是否有需要显示第三Toast的指令,同时按照上述同样流程去确定第三Toast对应的临时变量是否为空值;另外需要说明的是,本实施新创建出的Activity页面存在一个新的ToastView,第三Toast对应的目标文字会显示在新的ToastView中;本实施例是步骤S30之后新创建出Activity页面的判断过程中,因此本实施在重新确定所述第三Toast对应的临时变量是否保持为空值的步骤中,同时包含步骤S20和S30相同的流程,在此不在赘述。
综上所述,上述提供了一种基于Toast实现的消息通知方法,在Android6.0以上系统,将不会受到用户关闭系统通知权限的影响;本方法通过Activity的最外层布局来实现自定制的Toast在系统层面的弹窗显示功能,且能提高研发人员的工作效率,而且可自定制Toast的样式,较好的适应APP的整体风格;本方法能通过ActivityLifecycle接口确定第一Activity页面是否是在预设显示时长后正常关闭,若第一Activity页面是在预设显示时长内关闭的(此时由于关闭时间很快,可认为用户是认为不小心关闭掉第一Activity页面),此时确定第一Activity页面不是正常关闭,且意味着第一Toast也将消失,因此可在下一个最上层的Activity页面(第二Activity页面)继续弹出的第一Toast,以确保上一次弹出的第一Toast的消息能再次显示,提高消息的感知性,同时将消息通知的作用延伸到下一个最上层的Activity页面,不仅可以让用户了解到正确的消息,而且能使用户有足够的时间去了解第一Toast中的消息(待显示文字)。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种基于Toast实现的消息通知装置,该一种基于Toast实现的消息通知装置与上述实施例中一种基于Toast实现的消息通知方法一一对应。如图3所示,该一种基于Toast实现的消息通知装置包括获取模块11、设置模块12和弹出模块13。各功能模块详细说明如下:
获取模块11,用于在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局;
设置模块12,用于在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView时,获取所述ToastView中text设置的待显示文字,并将所述ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;
弹出模块13,用于在确定所述临时变量不为空值时,将除所述第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在所述第二Activity页面中,弹出所述第一Toast并令所述第一Toast显示所述待显示文字,同时将所述临时变量设置成空值;所述临时变量不为空值是指所述第一Toast显示的待显示文字的显示时长未超过预设显示时长。
进一步地,所述基于Toast实现的消息通知装置还包括:
管理模块,用于通过所述ActivityLifecycle接口对每一个所述Activity页面的应用生命周期进行回调管理。
进一步地,所述获取模块包括:
第一获取子模块,用于通过所述ActivityLifecycle接口获取安卓系统中的最上层的所述Activity页面,并将其作为所述第一Activity页面;
第二获取子模块,用于根据所述第一Activity页面获取与其关联的唯一安卓ID,并通过所述第一Activity页面关联的唯一安卓ID获取所述Activity的最外层布局。
进一步地,所述基于Toast实现的消息通知装置还包括:
添加模块,用于在确定所述第一Activity页面对应的所述Activity的最外层布局不存在所述第一Toast对应的ToastView时,获取新创建的一个与所述第一Toast对应的ToastView,并将所述ToastView添加至所述第一Activity的最外层布局中;
文字设置模块,用于在所述ToastView中设置所述待显示文字。
进一步地,所述基于Toast实现的消息通知装置还包括:
更改模块,用于将与第二Toast所对应的所述ToastView中的文字更改成所述待显示文字,并将所述ToastView的状态设置为用户可见状态;所述第二Toast弹出顺序位于所述第一Toast之前;一个所述ToastView对应一个所述第一Activity页面弹出的所述第一Toast和第二Toast。
进一步地,所述基于Toast实现的消息通知装置还包括:
第一确定模块,用于在确定所述临时变量依旧保持为空值时,确定上次显示的所述第一Toast在所述预设显示时长内已正常显示完毕,并在下一个新创建且位于最上层的Activity页面中,确定在预设时间阈值内是否需弹出第三Toast;所述第三Toast是指安卓系统除所述第一Activity页面和第二Activity页面之外的位于最上层的Activity页面中所需弹出的Toast;
展示模块,用于在确定需要弹出所述第三Toast时,获取所述第三Toast待显示的目标文字,令所述第三Toast进行弹出,同时展示所述第三Toast中的目标文字;
第二确定模块,用于重新确定所述第三Toast对应的临时变量是否保持为空值;
第三确定模块,用于在第所述第三Toast对应的临时变量在所述ActivityLifecycle接口中的显示时长达到所述预设显示时长时依旧保持为空值时,确定上次显示的所述第三Toast在所述预设显示时长内已正常显示完毕。
关于一种基于Toast实现的消息通知装置的具体限定可以参见上文中对于一种基于Toast实现的消息通知方法的限定,在此不再赘述。上述一种基于Toast实现的消息通知装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储一种基于Toast实现的消息通知方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于Toast实现的消息通知方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中一种基于Toast实现的消息通知方法的步骤,例如图2所示的步骤S10至步骤S30。或者,处理器执行计算机程序时实现上述实施例中一种基于Toast实现的消息通知装置的各模块/单元的功能,例如图3所示模块11至模块13的功能。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中一种基于Toast实现的消息通知方法的步骤,例如图2所示的步骤S10至步骤S30。或者,计算机程序被处理器执行时实现上述实施例中一种基于Toast实现的消息通知装置的各模块/单元的功能,例如图3所示模块11至模块13的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Toast实现的消息通知方法,其特征在于,包括:
在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局;
在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView时,获取所述ToastView中text设置的待显示文字,并将所述ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;
在确定所述临时变量不为空值时,将除所述第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在所述第二Activity页面中,弹出所述第一Toast并令所述第一Toast显示所述待显示文字,同时将所述临时变量设置成空值;所述临时变量不为空值是指所述第一Toast显示的待显示文字的显示时长未超过预设显示时长。
2.根据权利要求1所述的一种基于Toast实现的消息通知方法,其特征在于,所述将安卓系统中的最上层的Activity页面作为第一Activity页面之前,还包括:
通过所述ActivityLifecycle接口对每一个所述Activity页面的应用生命周期进行回调管理。
3.根据权利要求1所述的一种基于Toast实现的消息通知方法,其特征在于,所述将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局,包括:
通过所述ActivityLifecycle接口获取安卓系统中的最上层的所述Activity页面,并将其作为所述第一Activity页面;
根据所述第一Activity页面获取与其关联的唯一安卓ID,并通过所述第一Activity页面关联的唯一安卓ID获取所述Activity的最外层布局。
4.根据权利要求1所述的一种基于Toast实现的消息通知方法,其特征在于,所述通过所述第一Activity页面获取Activity的最外层布局之后,还包括:
在确定所述第一Activity页面对应的所述Activity的最外层布局不存在所述第一Toast对应的ToastView时,获取新创建的一个与所述第一Toast对应的ToastView,并将所述ToastView添加至所述第一Activity的最外层布局中;
在所述ToastView中设置所述待显示文字。
5.根据权利要求1所述的一种基于Toast实现的消息通知方法,其特征在于,所述在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView之后,还包括:
将与第二Toast所对应的所述ToastView中的文字更改成所述待显示文字,并将所述ToastView的状态设置为用户可见状态;所述第二Toast弹出顺序位于所述第一Toast之前;一个所述ToastView对应一个所述第一Activity页面弹出的所述第一Toast和第二Toast。
6.根据权利要求1所述的一种基于Toast实现的消息通知方法,其特征在于,所述将所述临时变量设置成空值之后,还包括:
在确定所述临时变量依旧保持为空值时,确定上次显示的所述第一Toast在所述预设显示时长内已正常显示完毕,并在下一个新创建且位于最上层的Activity页面中,确定在预设时间阈值内是否需弹出第三Toast;所述第三Toast是指安卓系统除所述第一Activity页面和第二Activity页面之外的位于最上层的Activity页面中所需弹出的Toast;
在确定需要弹出所述第三Toast时,获取所述第三Toast待显示的目标文字,令所述第三Toast进行弹出,同时展示所述第三Toast中的目标文字;
重新确定所述第三Toast对应的临时变量是否保持为空值;
在所述第三Toast对应的临时变量依旧保持为空值时,确定上次显示的所述第三Toast在所述预设显示时长内已正常显示完毕。
7.一种基于Toast实现的消息通知装置,其特征在于,包括:
获取模块,用于在接收到待显示的第一Toast的指令时,将安卓系统中的最上层的Activity页面作为第一Activity页面,并通过所述第一Activity页面获取Activity的最外层布局;
设置模块,用于在确定所述第一Activity页面对应的所述Activity的最外层布局中存在与所述第一Toast对应的ToastView时,获取所述ToastView中text设置的待显示文字,并将所述ToastView中的待显示文字作为一个临时变量保存至ActivityLifecycle接口中;
弹出模块,用于在确定所述临时变量不为空值时,将除所述第一Activity页面之外且位于最上层的Activity页面作为第二Activity页面,并在所述第二Activity页面中,弹出所述第一Toast并令所述第一Toast显示所述待显示文字,同时将所述临时变量设置成空值;所述临时变量不为空值是指所述第一Toast显示的待显示文字的显示时长未超过预设显示时长。
8.根据权利要求7所述的一种基于Toast实现的消息通知装置,其特征在于,所述获取模块包括:
第一获取子模块,用于通过所述ActivityLifecycle接口获取安卓系统中的最上层的所述Activity页面,并将其作为所述第一Activity页面;
第二获取子模块,用于根据所述第一Activity页面获取与其关联的唯一安卓ID,并通过所述第一Activity页面关联的唯一安卓ID获取所述Activity的最外层布局。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6中任一项所述一种基于Toast实现的消息通知方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述一种基于Toast实现的消息通知方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692084.XA CN113342548A (zh) | 2021-06-22 | 2021-06-22 | 一种基于Toast实现的消息通知方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110692084.XA CN113342548A (zh) | 2021-06-22 | 2021-06-22 | 一种基于Toast实现的消息通知方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113342548A true CN113342548A (zh) | 2021-09-03 |
Family
ID=77477869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110692084.XA Pending CN113342548A (zh) | 2021-06-22 | 2021-06-22 | 一种基于Toast实现的消息通知方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342548A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866523A (zh) * | 2015-03-31 | 2015-08-26 | 小米科技有限责任公司 | 页面显示方法及装置 |
CN106383712A (zh) * | 2016-09-21 | 2017-02-08 | 武汉斗鱼网络科技有限公司 | 一种Toast组件实现方法和系统 |
CN106569798A (zh) * | 2016-10-13 | 2017-04-19 | 上海斐讯数据通信技术有限公司 | 安卓系统Toast信息的控制方法及系统 |
-
2021
- 2021-06-22 CN CN202110692084.XA patent/CN113342548A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866523A (zh) * | 2015-03-31 | 2015-08-26 | 小米科技有限责任公司 | 页面显示方法及装置 |
CN106383712A (zh) * | 2016-09-21 | 2017-02-08 | 武汉斗鱼网络科技有限公司 | 一种Toast组件实现方法和系统 |
CN106569798A (zh) * | 2016-10-13 | 2017-04-19 | 上海斐讯数据通信技术有限公司 | 安卓系统Toast信息的控制方法及系统 |
Non-Patent Citations (5)
Title |
---|
BLINCHENG: "当关闭通知消息权限后无法显示系统Toast的解决方案", 《CSDN博客: HTTPS://BLOG.CSDN.NET/QQ_25867141/ARTICLE/DETAILS/52807705》 * |
MANDYPIG: "系统通知栏关闭,Toast不好使了?", 《简书网:HTTPS://WWW.JIANSHU.COM/P/9886D19DF16B》 * |
狮_子歌歌: "Activity Lifecycle", 《简书网:HTTPS://WWW.JIANSHU.COM/P/4B3BF0736FF7》 * |
红地毯前吃泡面: "解决Snackbar无法进行跨页面展示的问题", 《CSDN博客:HTTPS://BLOG.CSDN.NET/JINGZZ1/ARTICLE/DETAILS/86542552》 * |
美团技术团队: "Toast与Snackbar的那点事", 《CSDN博客:HTTPS://BLOG.CSDN.NET/MEITUANTECH/ARTICLE/DETAILS/79748447》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10699061B2 (en) | Application page quick access | |
WO2018127063A1 (zh) | 应用数据处理的方法、装置及存储介质 | |
WO2020000663A1 (zh) | 短信发送的方法、装置、计算机设备和存储介质 | |
CN111723079A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
CN107025256B (zh) | 用于减少基于云的服务的重新激活时间的方法和系统 | |
US20210240914A1 (en) | System and method for dynamic webpage rendering with no flicker or flash of original content | |
CN109522500B (zh) | 网页显示方法、装置、终端和存储介质 | |
CN111008132B (zh) | Android系统的应用调试方法、装置、计算机设备和存储介质 | |
CN110908837B (zh) | 应用程序异常处理方法、装置、电子设备及存储介质 | |
WO2020006864A1 (zh) | 浏览器输入框展示方法、装置、计算机设备及存储介质 | |
CN111930283B (zh) | 一种消息显示方法及计算设备 | |
CN110990132B (zh) | 异步任务处理方法、装置、计算机设备和存储介质 | |
CN112181423A (zh) | 基于配置文件的项目构建方法、装置、计算机设备及介质 | |
CN114189559A (zh) | 基于Axios的接口重复请求处理方法及系统 | |
CN110955508A (zh) | 基于分布式架构的异步任务调度方法、装置和计算机设备 | |
CN112417336B (zh) | 页面显示方法、装置、电子设备及存储介质 | |
US9436669B1 (en) | Systems and methods for interfacing with dynamic web forms | |
CN110442400B (zh) | 浏览器控制方法及装置 | |
CN113342548A (zh) | 一种基于Toast实现的消息通知方法、装置、设备及存储介质 | |
US9916391B2 (en) | Method, apparatus and terminal for webpage content browsing | |
CN115688102A (zh) | 窗口的处理方法、装置、处理器及电子设备 | |
CA3134295A1 (en) | Data queue pushing method and device, computer equipment and storage medium | |
CN104919415A (zh) | 用于管理应用程序的装置和方法 | |
CN109783156B (zh) | 一种应用的启动控制方法及装置 | |
US9582368B2 (en) | Method and apparatus for text input protection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210903 |