我不情愿地从Eclipse转到AndroidStudio开发应用程序(仅限于此).对我来说真正令人讨厌的是AndroidStudio没有立刻显示所有编译错误,或者到目前为止我还没有找到合适的选项.
鉴于这些愚蠢的类首先一切都很好:
A.kt
package so
class A(val a: Int) {
fun add(b: Int): Int {
return a + b
}
}
Run Code Online (Sandbox Code Playgroud)
B.kt
package so
class B {
fun foo() {
val a = A(1)
val c = a.add(2)
}
}
Run Code Online (Sandbox Code Playgroud)
C.kt
package so
class C {
fun bar() {
val a = A(3)
val c = a.add(4)
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我进入A并且错误地从方法名称中删除了一个字母,add那么它的名字就变成了ad.然后,没有错误显示在B或C:
尽管它们列在编译日志中,但它们都Build > Make Project没有Build > Rebuild Project …
我希望我的应用程序在手机设置为“请勿打扰”模式(仅警报,仅优先级或完全静音)时显示通知。通过android.media.RINGER_MODE_CHANGED在快速设置中检查此模式并在已选择的选项卡中选择该模式时,可以很好地工作。但是当选择另一个标签时,它不会再次被触发。因此我的应用程序具有错误的模式信息并显示错误的通知。
我再次尝试,android.app.action.INTERRUPTION_FILTER_CHANGED但在上述情况下根本没有触发。
我想立即得到通知,所以我不想使用轮询观察器。就我而言,我希望由此而消耗大量电池。
有一个类似的问题,但没有侦听器解决方案:
希望在此期间我想再次提出一个解决方案:有人有什么好主意或提示要听什么吗?
更新:
这是AndroidManifest.xml中的广播接收器定义...要明确这一点:接收器在振铃模式更改时被调用,还检测到飞行模式和摘机,但是并非在所有振铃模式更改时都被调用。通过按快速设置或使用音量键在免打扰模式更改之间切换:
<receiver android:name="UpdateStatusNotification" android:process=":remote">
<intent-filter>
<action android:name="android.app.action.INTERRUPTION_FILTER_CHANGED"/>
<action android:name="android.intent.action.AIRPLANE_MODE"/>
<action android:name="android.intent.action.PHONE_STATE"/>
<action android:name="android.media.RINGER_MODE_CHANGED"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
更新2:
请阅读我对已接受答案的最后评论。