我有以下问题...我正在我的 android 应用程序中实现一个QR 码
游戏...这是通过启动此intent
来完成的:
Intent intent = new Intent(
"com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
换句话说,我启动了 Barcode Scanner
应用程序。
我想做的是启动这个应用程序,无论用户是否开始扫描条形码,应用程序都会在两分钟后自动关闭。
当然,如果用户不关闭它。
我试过像这样实现 AsyncTask
线程:
在 onCreate() 中
initTask=new InitTask();
initTask.execute();
在 onCreate() 之外
private class InitTask extends AsyncTask<Void,Void,Void>{
protected Void doInBackground(Void...unused){
new Runnable() {
@Override
public void run() {
try {
Thread.sleep(20000);
}
catch (InterruptedException e) {
e.printStackTrace();
}
Intent intent = new Intent(
"com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
}.run();
this.cancel(true);
return null;
}
}
在 onCreate() 之外
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
//..........
}
问题是应用程序已打开,但 2 分钟后不会自动关闭。 有人知道我怎样才能做到这一点吗?
最佳答案
更新
private class InitTask extends AsyncTask<Void,Void,Void>{
@Override
protected void onPreExecute()
{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 1515);
}
protected Void doInBackground(Void...unused){
try
{
Thread.sleep(20000);
}
catch(Exception e)
{
System.out.println(e);
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
finishActivity(1515);
}
}
Activity 结果
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 1515) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
System.out.println("it is ok");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
System.out.println("it is cancel");
}
}
}
关于android - 实现 AsyncTask 线程的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7384339/