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
之前继续进行第二次活动答案 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);
}
}
希望它会有所帮助。