Android 通知 setContentView
Posted
技术标签:
【中文标题】Android 通知 setContentView【英文标题】:Android Notification setContentView 【发布时间】:2013-02-18 12:43:52 【问题描述】:http://developer.android.com/guide/topics/ui/notifiers/notifications.html Page 说,我必须使用 Intent
我不能使用 Intent,因为我的代码只有一个 Activity。我想使用通知返回应用程序,例如从设备的主屏幕。
当我想通过单击通知执行某些操作时,我必须使用 Intents。点击通知后有没有办法使用setContentView
?
【问题讨论】:
【参考方案1】:到目前为止,我还没有看到您的尝试,我打算尝试一下。
我不太明白为什么无论您的应用中有多少活动,您都不能声明/使用Intent
。如果您需要在单击 Notification 后再次触发您唯一的 Activity,并且需要再次调用 Activity onCreate()
中的 setContentView(R.layout.some_layout_xml);
,为什么不为您的 Notification 声明一个 Intent,如下所示:
Intent intent = new Intent(getApplicationContext(), YOUR_ACTIVITY.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(YOUR_ACTIVITY.this, 0, intent, 0);
这样,点击你的通知应该做你想做的事。
同样,考虑到您根本没有发布任何代码,这可能对您有用,也可能不适用。
编辑:根据 OP 的 cmets,我认为解决方案可能:
请参阅此链接,了解如何使用 Intent 发送数据以获取通知:How to send parameters from a notification-click to an activity?
基本上,由于触发了Notification
,我假设用户已经登录。现在,当他们在单击Notification
后返回应用程序时跳过登录部分,发送一些附加信息Intent
。然后,当Activity
启动时,检查该值并使用if...else
语句决定应该显示哪个布局。
再一次,我不能再强调这一点了,你应该总是展示你到目前为止所做的事情。这确实有助于找到解决方案。您的实际要求与您需要做什么完全没有关系。
【讨论】:
当我点击通知时,我的应用程序的新实例刚刚启动。应用程序是基于LoginActivity的,所以每次从通知打开应用程序时我都无法打开登录表单。 @Disa:点击通知时你想运行什么任务?把你的问题弄得更清楚一点真的很有帮助。 应用基于 LoginActivity。当我启动应用程序时,应该会出现登录表单。成功登录后应该会出现主要内容。当有人想回家几分钟时,点击通知应该会显示主要内容而无需重新登录。 @Disa:所以你有 2 个活动对吗?假设,第一个是 LoginActivity,第二个是 MainActivity?可以吗? 我只有一个 Activity,但有 3 个布局(登录、主要、添加联系人)。当我需要显示它们时,我通过 setContenetView 调用它们。【参考方案2】:您可以使用 Intent 返回应用,例如像这样:
final Intent intent = new Intent(context, YourActivity.class);
final PendingIntent pendingIntent = PendingIntent.getActivity(
context, 0, intent, 0);
final Notification notification = new Notification(
R.drawable.logo, tickerText, System.currentTimeMillis());
notification.setLatestEventInfo(context, title, text, pendingIntent);
notificationManager.notify(NOTIFICATION_ID, notification);
【讨论】:
当我点击通知时,我的应用程序的新实例刚刚启动。以上是关于Android 通知 setContentView的主要内容,如果未能解决你的问题,请参考以下文章
Android - setContentView 中的 loadDrawableForCookie Resources$NotFoundException
Android 9 (API 28) 活动在启动时崩溃 (setContentView)