Java 方向改变声音

Java 方向改变声音,java,android,Java,Android,早上好 我们开发了一款android应用程序,我负责找出如何在每次屏幕方向改变时消除通知声音的不希望出现的行为。显然,这种行为只存在于运行OS 3.2.3或更高版本的设备上 我读过几篇文章,指出可以通过取消选中设置-->开发人员选项中的USB调试来关闭此功能,但是此选项未选中,并且任何Android设备上的其他应用程序都不会在方向更改时发出此通知 应用程序确实需要在“收到消息”时发出通知(应用程序连接到Web服务并每隔一段时间从该服务获取新消息)。因此,这将排除任何禁用通知的解决方案 到目前为止

早上好

我们开发了一款android应用程序,我负责找出如何在每次屏幕方向改变时消除通知声音的不希望出现的行为。显然,这种行为只存在于运行OS 3.2.3或更高版本的设备上

我读过几篇文章,指出可以通过取消选中设置-->开发人员选项中的USB调试来关闭此功能,但是此选项未选中,并且任何Android设备上的其他应用程序都不会在方向更改时发出此通知

应用程序确实需要在“收到消息”时发出通知(应用程序连接到Web服务并每隔一段时间从该服务获取新消息)。因此,这将排除任何禁用通知的解决方案

到目前为止,我已经尝试了几种可能的解决方案: 1) 收到消息时,实例化一个新的NotificationManager,并在发出通知后销毁NotificationManager

if(MessageReceived == true) {
    String ns = Context.NOTIFICATION_SERVICE;
    messageNotifyManager = (NotificationManager) getSystemService(ns);
}
showNotification();
messageNotifyManager = null;
2) 我意识到方向的改变本质上是视图被破坏和重新创建。在重新创建通知管理器之前,我在初始onCreate方法中设置了一个标志,并检查该标志是否有值

public static int Flag = 0; 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if(Flag == 0) {
        String ns = Context.NOTIFICATION_SERVICE;
  messageNotifyManager = (NotificationManager) getSystemService(ns);
        Flag = 1;
    } 
} 
3) 在应用程序的主类中,我创建了一个public-orientionEventListener属性,然后在onCreate方法中设置它的值,并立即禁用它。当这没有禁用声音时,我尝试禁用引用应用程序主类的每个类中的属性

public OrientationEventListender listener;
@Override
public void onCreate() {
    super.onCreate();
    appContext = getApplicationContext();
    GetPreferences();
    //...
    listener = new OrientationEventListener(appContext){
        public void onOrientationChanged(int Orientation){
        }
    };
    listener.disable();
}

现在,正如你可能知道的,我对Android开发非常陌生。我假设这个解决方案非常简单,每个人都知道,这就是为什么在网上没有现成的答案。但是,对于这个简单问题的任何帮助,我们都将不胜感激。谢谢

通过修改AndroidManifest,向每个活动添加以下标记,解决了此问题:android:configChanges=“orientation”

如果活动正在被销毁或重新创建,您不能使用android:launchMode=“singleTask”更改清单中的行为吗?不幸的是,启动模式已设置为“singleTask”。不过,谢谢你的建议!