【发布时间】:2016-10-26 15:43:09
【问题描述】:
我有一个应用范围的实用程序类 AppUtils,我可以在其中随时发布应用相关信息:
- 当我在应用程序中时,作为 SnackBar 使用
- 或通过通知管理器
例如,当消息作为 Snackbar 运行时,我需要当前显示的 View 容器的轨道才能在 Snackbar.make(view, text, length); 中使用它
当我想通过NotificationManager.notify(int, Builder); 发布该消息并且我需要here 中的类签名时
Intent resultIntent = new Intent(this, ResultActivity.class);
因此我的 AppUtils 中有:
public static void setCurrentViewAndClass(View v, Class<?> c)
{
view = v; // view is static
cls = c; // cls is static
}
我可以从项目中的任何地方记住当前视图(用于 Snackbar 参数)和 cls(用于通知意图)。
进一步,我清除了这些参数,例如当我将应用程序留在后台时:
public static void clearCurrentViewAndClass()
{
view = null;
cls = null;
}
A.当这些参数为 NOT null 时,我知道我的应用具有相应视图的焦点,我可以将相关消息显示为 Snackbar。 B. 当这些参数为 null 时,我知道我的应用在后台,我想将相关消息显示为 Notification
因此,每当创建或恢复片段/活动时,我都会在每个 onResume() 中调用 setClassAndview() 以记住参数。
有没有更优雅的方法来跟踪当前显示的 Activity 或活动的 Class ?
【问题讨论】:
标签: android class view android-notifications android-snackbar