正如标题所说,我怀疑我的 R.string.app_name 改变了。由于我的通知有时不再更新,但下面的代码确实执行了(我可以在 logcat 中看到它)。那可能吗?
nm.notify(R.string.app_name, notification);
Log.i(TAG, "B:showNotification(): id = " + R.string.app_name);
正如标题所说,我怀疑我的 R.string.app_name 改变了。由于我的通知有时不再更新,但下面的代码确实执行了(我可以在 logcat 中看到它)。那可能吗?
nm.notify(R.string.app_name, notification);
Log.i(TAG, "B:showNotification(): id = " + R.string.app_name);
不,这是不可能的,因为所有资源都在您的文件(文件夹中)R.*.*
中定义为常量。稍后 Android 不会编辑这些内容。R.java
/gen/<your-package>
例子:
public final class R {
public static final class anim {
public static final int accelerate_interpolator=0x7f040000;
public static final int activity_slide_in=0x7f040001;
public static final int activity_slide_out=0x7f040002;
}
public static final class attr {
}
public static final class drawable {
public static final int ic_action_search=0x7f020000;
public static final int ic_launcher=0x7f020001;
}
public static final class id {
public static final int main_layout=0x7f070001;
public static final int scroll=0x7f070000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f050000;
}
public static final class style {
public static final int AppTheme=0x7f060000;
}
}
这是我的一个真实项目中的 R.java 文件。如您所见,每个值都是final int
在您开发应用程序时分配的(所有值都使用十六进制分配,因此您必须使用在线转换器来转换实际的 int 值)