2011-09-09 143 views
-1

嘿!在我的Android應用程序中,我有一個啓動應用程序條碼掃描器的按鈕。例如,我想在2分鐘後停止此應用。我怎樣才能做到這一點?如何在一段時間後停止應用程序?

這是我的代碼:

qrgame = (Button) findViewById(R.id.qrgame); 
qrgame.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       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); 
      } 
     }); 
+0

當您開始一個活動時,它將由啓動的活動來控制其自己的生命週期。不是來電者的活動。 – Shlublu

+0

這意味着我不能停止這一個? – Gabrielle

+0

不是「自然地」。你可以殺死一個應用程序的方式高級任務殺手正在做的事情(我不這樣很好,但你可以找到很多的例子),但這絕對不是建議。 – Shlublu

回答

0

您可以創建您在您的應用程序的onCreate執行asyncTask。在AsyncTask中你寫了一個

Thread.slepp(120000). 

之後,你可以停止你的應用程序。

1

就可以完成你的活動,你可以使用

startActivityForResult(intent, 0); 

您需要將相同requestcode傳遞給該方法

finishActivity(requestCode); 

你可以你線程的延遲時間,定時器等啓動活動

或者你可以關閉你打開的活動只是實現定時器,線程,將持有你2分鐘或根據您的要求,然後致電

finish(); 
+0

或者我可以只使用一個AsyncTask,哈哈? – Gabrielle

+0

AsyncTask你可以使用它,但我認爲你需要計時器和AsynTask被用於後臺進程,如加載數據像圖像,讀取大文件等。 – Pratik

0

上創建方法把這個代碼

new Thread(){ 
public void run(){ 
try{ 
Thread.sleep(120000); 
} 
catch(Exception e){} 
} 
}.start(); 

不要忘記你導入的主題,或者如果您使用elipse只是CRTL + SHIFT + O

0

我也有類似的規定,把你想用某種方法運行的任何東西,並且調用方法開始和停止。

//Say we place a switch case for the onClickListener 

case R.id.btnScan: 

    new CountDownTimer(120000, 120000) { 

     public void onTick(long millisUntilFinished) { 
     } 

     public void onFinish() {    
      stopScanning(); // Stop the application/function here 
      button.setText("Scanned"); 
     } 
    }.start(); 

    startScanning(); 

    break; 
相關問題