android中的意图

时间:2017-09-30 19:52:38

标签: 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

之前继续进行第二次活动

2 个答案:

答案 0 :(得分:1)

使用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); 

答案 1 :(得分:0)

您可以使用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);
    }
  }

希望它会有所帮助。