如何将 activity 从下拉菜单中的通知置于最前面?
How to bring activity to front from notification in drag down menu?
我正在使用一个使用通知(带有前台服务)的应用程序。
用例如下:
- 如果应用程序 activity 被 终止 ,单击通知图标时,将创建 activity 并将其置于前台。
- 如果应用程序的activity 不可见,单击通知图标时,activity 会简单地置于前台。
对于re-creating/bringing前台的activity,我在前台服务中使用了以下广播接收器:
private static class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent intent = new Intent(context,MainActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setAction("android.intent.action.MAIN")
.addCategory("android.intent.category.LAUNCHER");
context.startActivity(sIntent);
}
}
所需的操作与 android phone 上的默认音乐播放器非常相似,即:单击图标时,activity 会简单地置于前台(或重新创建并置于前台以防它之前被杀死)
这是三星 S4 的屏幕截图
- 第一个通知来自 USB - 我们不关心它
- 第二个通知是我的应用程序 - 当单击图标时,activity 被创建但没有被带到前台(用户必须向后滑动菜单才能看到activity)
如何在不使用额外的向后滑动菜单的情况下将其置于最前面?(与音乐播放器应用程序的方式类似?
PS: 最低Android SDK版本为16
据我所知,不可能将您的 activity 放在通知菜单前面。但是您可以使用以下命令自动关闭菜单:
Intent i = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
context.sendBroadcast(i);
我正在使用一个使用通知(带有前台服务)的应用程序。
用例如下:
- 如果应用程序 activity 被 终止 ,单击通知图标时,将创建 activity 并将其置于前台。
- 如果应用程序的activity 不可见,单击通知图标时,activity 会简单地置于前台。
对于re-creating/bringing前台的activity,我在前台服务中使用了以下广播接收器:
private static class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent intent = new Intent(context,MainActivity.class)
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.setAction("android.intent.action.MAIN")
.addCategory("android.intent.category.LAUNCHER");
context.startActivity(sIntent);
}
}
所需的操作与 android phone 上的默认音乐播放器非常相似,即:单击图标时,activity 会简单地置于前台(或重新创建并置于前台以防它之前被杀死)
这是三星 S4 的屏幕截图
- 第一个通知来自 USB - 我们不关心它
- 第二个通知是我的应用程序 - 当单击图标时,activity 被创建但没有被带到前台(用户必须向后滑动菜单才能看到activity)
如何在不使用额外的向后滑动菜单的情况下将其置于最前面?(与音乐播放器应用程序的方式类似?
PS: 最低Android SDK版本为16
据我所知,不可能将您的 activity 放在通知菜单前面。但是您可以使用以下命令自动关闭菜单:
Intent i = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
context.sendBroadcast(i);