如何初始化一个static
不可修改的实例android.util.SparseArray
?
问题:
如何管理(连接,读取,写入,断开)通过配置更改而持续存在的蓝牙连接?
首选使用ActionBarSherlock与设备版本2.2"Froyo"兼容的解决方案.
问题...
既BluetoothDevice
不能BluetoothSocket
也不能保留onSaveState
.
为了保持我的应用程序响应,12秒阻止调用BluetoothSocket.connect()
必须在单独的线程上进行.启动a Runnable
是线程长任务的推荐方法,但是尝试恢复配置更改是一场噩梦.官方文档指出了三种不同的解决方案.
使用getLastNonConfigurationInstance()
,已被弃用(严重?!).
设置android:configChanges="keyboardHidden|orientation"
类似于BluetoothChat示例.但是,这并未考虑所有类型的配置更改.
取消并重新启动任务,例如货架示例.在这种情况下,这可能会浪费另外12秒.
更新1
进一步的研究使我得到了asyncTaskLoader,但似乎这只能在完成时更新UI,并且无法提供更新.
BluetoothHDP示例使用服务.服务似乎侧重于进程间通信以及持续超出活动生命周期的需要.我不需要这些功能.
更新2
正如鲁本所指出的,Fragment.setRetainInstance(bool)
已经取代了被弃用的getLastNonConfigurationInstance()
.在这一点上,似乎最好的选择是使用持久的非UI片段setRetainInstance(true)
.
我有多个管理连接的活动(B => C => D).如果该连接丢失,它们应该全部清除并将结果返回给A,具体取决于原因(RESULT_USER_TERMINATED, RESULT_LOW_SIGNAL, RESULT_UNKOWN
等等)
Intent intent = new Intent(this, B.class);
startActivityForResult(intent, REQUEST_EXIT_STATUS);
Run Code Online (Sandbox Code Playgroud)
Intent intent = new Intent(this, C.class);
intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
startActivity(myIntent);
Run Code Online (Sandbox Code Playgroud)
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
setResult(ConnectActivity.RESULT_USER_TERMINATED);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这不起作用.相反,A得到RESULT_CANCELED
.我怎样才能按预期工作?或者,是否有更好的方法来实现相同的结果?
标题几乎说明了一切...
我正在尝试强制在表单上输入文本的最大长度。字段之一可以是任何有效的浮点数。最大长度是多少?
例如,对于整数
// negative sign makes MIN_VALUE larger than MAX_VALUE
String.valueOf(Integer.MIN_VALUE).length();
Run Code Online (Sandbox Code Playgroud)
更新
我已经测试了以下内容:
String.valueOf(-Float.MIN_VALUE).length();
String.valueOf(-Float.MAX_VALUE).length();
String.valueOf( Float.MIN_VALUE).length();
String.valueOf( Float.MAX_VALUE).length();
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出:
8
13
7
12
Run Code Online (Sandbox Code Playgroud)
我不认为最大长度是13
我打算用一个NSMutableDictionary
属性存储游戏数据(比如得分,设置等......).
@property (nonatomic, copy) NSMutableDictionary *gameData;
Run Code Online (Sandbox Code Playgroud)
在研究为什么没有属性的"mutablecopy"选项时,我发现了这个讨论,接受的答案是:
正确的方法是不要将可变数组作为属性
那么在现代Objective-C中将可变集合作为属性处理的最佳方法是什么?
这一切都在标题中.似乎Android Asset Studio不会生成ldpi启动器图标.该工具似乎也会生成xxhdpi图标,这些图标在Android启动器图标设计指南中未提及
android ×4
java ×3
assets ×1
bluetooth ×1
collections ×1
ios ×1
iphone ×1
maxlength ×1
objective-c ×1
sockets ×1
sparse-array ×1