簡體   English   中英

安卓中的意圖

[英]Intents in android

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class Second extends AppCompatActivity {

    TextView t1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        t1 = (TextView)findViewById(R.id.textView);

        Bundle b = getIntent().getExtras();
        String S = b.getString("key1");
        t1.setText(S);
        try {
            wait(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Intent i2 = new Intent();
        i2.putExtra("reply","Everything is cool");
        setResult(RESULT_OK,i2);
        finish();
    }
}

這是我的第二個活動代碼。 實際上,我通過實施一個非常基本的程序來了解意圖是如何工作的。 程序無需等待即可運行,但如果我放置等待功能,應用程序就會崩潰。 為我提供一些方法,以便我可以在發回 r 之前更長時間地進行第二項活動

使用Handler並嘗試從 run() 啟動 Intent 您可以查看以下示例,

Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() {
         @Override 
         public void run() { 
              Intent i2 = new Intent();
              i2.putExtra("reply","Everything is cool");
              setResult(RESULT_OK,i2);
              finish(); 
         } 
    }, 3000); 

您可以使用 service 或 acyncTask 而不是

 try {
            wait(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        } 

你可以試試這個代碼

   public void onclick(View v) {
    mt = new MyTask();
    mt.execute();
  }

  class MyTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
      super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... params) {
      try {
        TimeUnit.SECONDS.sleep(2);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      return null;
    }

    @Override
    protected void onPostExecute(Void result) {
      super.onPostExecute(result);
    }
  }

希望它會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM