小编reT*_*eTs的帖子

了解Android中的R类

在android中,我不确定我是否完全理解这个R课程.我正在浏览数独的例子,我有这段代码:

switch (v.getId()) // the id of the argument passed is evaluated by switch statement
{
    case R.id.about_button: // 
    Intent i = new Intent(this, about.class);
    startActivity(i);
    break;
    // More buttons go here (if any) ...
}
Run Code Online (Sandbox Code Playgroud)

我是Java的新手,但从我收集的内容看起来它正在接受输入(触摸屏触摸按钮)并评估参数.然后,如果识别出about按钮,则设置case语句,并创建新的界面屏幕,然后导航到手机上.

这是正确的吗?

如果我得到了正确的要点,为什么与"R"类交易呢?

为什么要调用它来识别按钮的ID?

我认为超类(在这个项目中)是SudokuActivity类.

java android

64
推荐指数
3
解决办法
9万
查看次数

Room:来自Dao的LiveData将在每次更新时触发Observer.onChanged,即使LiveData值没有变化

我发现Dao返回的LiveData会在DB中更新行时调用它的观察者,即使LiveData值显然没有改变.

考虑类似以下示例的情况:

示例实体

@Entity
public class User {
    public long id;
    public String name;
    // example for other variables
    public Date lastActiveDateTime;
}
Run Code Online (Sandbox Code Playgroud)

示例道

@Dao
public interface UserDao {
    // I am only interested in the user name
    @Query("SELECT name From User")
    LiveData<List<String>> getAllNamesOfUser();

    @Update(onConflict = OnConflictStrategy.REPLACE)
    void updateUser(User user);
}
Run Code Online (Sandbox Code Playgroud)

某个地方在后台线程

UserDao userDao = //.... getting the dao
User user = // obtain from dao....
user.lastActiveDateTime = new Date(); // no change to user.name
userDao.updateUser(user);
Run Code Online (Sandbox Code Playgroud)

UI中的某个地方

// omitted ViewModel …
Run Code Online (Sandbox Code Playgroud)

android android-room android-livedata

18
推荐指数
2
解决办法
9726
查看次数

android logcat在android 6.0或android 7.0中读取意外的eof

我认为这是日志过多导致的问题,因为我增加了logd的环形缓冲区,只是Logcat -G 5m,它会让问题慢慢发生,但它仍然有.我可以解决这个问题 在此输入图像描述

android android-logcat

9
推荐指数
0
解决办法
3717
查看次数

关闭外设导致意外行为

使用Android 4.3/Samsung BLE 2.0 SDK时,观察到当外围设备关闭时,SDK将立即或在延迟20秒后接收onConnectionStateChange(DEVICE_DISCONNECTED).根据我的经验,这取决于外围设备实现,其中一些将尝试报告它们被关闭而有些则没有,因此SDK必须等待约20秒才能超时.

为了消除这种行为,我尝试使用Timer来检查我是否可以读取某个特征.如果读取超时,我会调用disconnect(Android 4.3)/ cancelConnection(Samsung)来终止连接.调用本身成功,onConnectionStateChange回调返回状态GATT_SUCCESS.然后我打开外围设备并立即连接到它,发现服务,并在我尝试读/写/通知任何通知时遇到问题.通过在iOS中使用LightBlue,我可以确认外围设备没有连接.

关闭外围设备20秒后,我将收到DEVICE_DISCONNECTED回调.之后我再次联系,一切运作得很好.

有两个问题:1.我们是否应该在20秒延迟期间连接到外围设备?2.外围设备关闭时是否有任何方法可以获得通知?

提前致谢.

android bluetooth-lowenergy android-bluetooth

7
推荐指数
1
解决办法
402
查看次数