我问你对我申请的建议 . 我必须开发一个具有以下特征的应用程序:
1-只肖像
2-当打开应用程序时,它显示蓝牙设备呈现
3-当您点击一个设备时,该应用程序会向用户询问解锁代码并显示连接按钮
4-按下连接按钮后,应用程序显示一个加载微调器栏,带有两个或三个按钮
重点是:我是否更好地为每种行为使用了三种不同的片段?
现在我做了:
扫描设备的一个活动
解锁代码的一个活动
但我不知道在哪里可以放入加载屏幕(加载微调器栏和三个按钮)
现在我想以不同的方式发展 . 一个处理3个不同片段加载的中心活动:
-
一个用于扫描设备
-
一个用于解锁代码,另一个用于加载屏幕
但我是Android编程的新手,我总是想知道我是以正确的方式还是以错误的方式思考 .
最后:为了将所选设备从片段传递到活动,我想我将在mainactivity中实现一个监听器 . 这样对吗 ?
**编辑: *我对主要问题有另一个疑问 . ***
现在根据你的建议,我想以这种方式开发这个应用程序:
-
主要活动
-
扫描DEvice片段
-
解锁设备片段
-
加载片段
-
已开始服务
在先前的版本中,我想开发三种不同的活动,并使用binder和messange以两种方向与服务进行通信
相反,现在主要活动中有三个不同的片段 . 我的问题是:因为你最好在mainactivity内部或每个片段内部实现对服务的通信?
例如:用户在扫描片段中选择一个设备,该片段直接将选择信息传递给服务,或者将选择信息传递给主要事件,以便将信息转发给服务?
谢谢你的时间 :)
2 回答
not 使用
setContentView()
来更改应用程序的状态,它可能会导致onBackPressed()
上的不一致问题 - 改为使用片段 . 但是你会在背压时遇到问题,所以你需要查看你的活动中是否有碎片留下来,你需要在这个问题中看到https://stackoverflow.com/a/24527530/2413303 ContainerFragment .另外,使用 ButterKnife 库,我没有在这个例子中我链接,即使我应该有 . 它使代码更简洁,并做同样的事情 .
对于通信,您可以根据https://stackoverflow.com/a/28480952/2413303使用 Otto 库
我对主要问题有另一个疑问 .
现在我用这种方式开发这个应用程序:
主要活动
扫描DEvice片段
解锁设备片段
加载片段
已开始服务
在先前的版本中,我想开发三种不同的活动,并使用binder和messange以两种方向与服务进行通信
现在,主要活动内部有三个不同的片段,因为您最好在mainactivity内或每个片段内部实现对服务的通信?
例如 :