当前位置: 编程技术>移动开发
本页文章导读:
▪在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();
}
}
最新技术文章: