当前位置: 编程技术>移动开发
本页文章导读:
▪在Oracle上基于序列和触发器实现主键自增长 在Oracle下基于序列和触发器实现主键自增长
drop
table
book;
drop
sequence book_seq;
drop
trigger
book_tri;
--
创建表格
create
table
book
(
bookId
integer
primary
key
not
null
,
bookName
varchar2
(
.........
▪ 在AsyncTask线程中统制网络超时 在AsyncTask线程中控制网络超时
今天在项目中遇到一个需要控制网络加载超时的情况,就是用AsyncTask的线程在后台加载网络资源,但是有时候需要处理网络状态非常差,造成线程假死的情况.........
▪ 蓝牙RFCOMM联接 蓝牙RFCOMM连接
public class ZeeTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
for (int i = 0.........
[1]在Oracle上基于序列和触发器实现主键自增长
来源: 互联网 发布时间: 2014-02-18
在Oracle下基于序列和触发器实现主键自增长
drop
table
book;
drop
sequence book_seq;
drop
trigger
book_tri;
--
创建表格
create
table
book
(
bookId
integer
primary
key
not
null
,
bookName
varchar2
(
20
),
price
number
(
3
)
)tablespace zfs_data
desc
book;
--
创建序列
--
创建一个从10000开始每次递增为1的序列
create
sequence book_seq minvalue
10000
maxvalue
9999999
increment
by
1
start
with
10000
;
--
创建一个触发器,用于每次插入前自动成成序列的值
create
or
replace
trigger
book_tri
before
insert
on
book
for
each row
begin
select
book_seq.nextval
into
:new.bookId
from
dual;
end
;
/
commit
;
insert
into
book (bookName, price)
values
(
'
深入浅出EXTJS
'
,
59
);
insert
into
book (bookName, price)
values
(
'
深入浅出Jquery
'
,
49
);
select
*
from
book;
[2] 在AsyncTask线程中统制网络超时
来源: 互联网 发布时间: 2014-02-18
在AsyncTask线程中控制网络超时
今天在项目中遇到一个需要控制网络加载超时的情况,就是用AsyncTask的线程在后台加载网络资源,但是有时候需要处理网络状态非常差,造成线程假死的情况。我们都知道一个AsyncTask线程只能启动一次,线程结束之后对象就被回收了,而且是不能手动停止的。
解决办法是在请求网络的URL中控制延时时间:
这样当网络出现异常或长时间加载无果时,会提前强制结束AsyncTask线程
因为经常需要使用到,当个笔记写下来。。
今天在项目中遇到一个需要控制网络加载超时的情况,就是用AsyncTask的线程在后台加载网络资源,但是有时候需要处理网络状态非常差,造成线程假死的情况。我们都知道一个AsyncTask线程只能启动一次,线程结束之后对象就被回收了,而且是不能手动停止的。
解决办法是在请求网络的URL中控制延时时间:
URL url = new URL(/blog_article/path/index.html); HttpURLConnection connect = (HttpURLConnection)url.openConnection(); //设置连接服务器超时时间 connect.setConnectTimeout(60*1000); //设置从服务器读取数据超时时间 connect.setReadTimeout(60*1000);
这样当网络出现异常或长时间加载无果时,会提前强制结束AsyncTask线程
因为经常需要使用到,当个笔记写下来。。
[3] 蓝牙RFCOMM联接
来源: 互联网 发布时间: 2014-02-18
蓝牙RFCOMM连接
public class ZeeTest extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); try { for (int i = 0; i < 3; i++) { test(); } } catch (Exception e) { e.printStackTrace(); } } private boolean connected = false; private BluetoothSocket sock; private InputStream in; public void test() throws Exception { if (connected) { return; } BluetoothDevice zee = BluetoothAdapter.getDefaultAdapter(). getRemoteDevice("00:1C:4D:02:A6:55"); Method m = zee.getClass().getMethod("createRfcommSocket", new Class[] { int.class }); sock = (BluetoothSocket)m.invoke(zee, Integer.valueOf(1)); Log.d("ZeeTest", "++++ Connecting"); sock.connect(); Log.d("ZeeTest", "++++ Connected"); in = sock.getInputStream(); byte[] buffer = new byte[50]; int read = 0; Log.d("ZeeTest", "++++ Listening..."); try { while (true) { read = in.read(buffer); connected = true; StringBuilder buf = new StringBuilder(); for (int i = 0; i < read; i++) { int b = buffer[i] & 0xff; if (b < 0x10) { buf.append("0"); } buf.append(Integer.toHexString(b)).append(" "); } Log.d("ZeeTest", "++++ Read "+ read +" bytes: "+ buf.toString()); } } catch (IOException e) {} Log.d("ZeeTest", "++++ Done: test()"); } @Override public void onDestroy() { try { if (in != null) { in.close(); } if (sock != null) { sock.close(); } } catch (IOException e) { e.printStackTrace(); } super.onDestroy(); } }
最新技术文章: