活动之间的互动

时间:2012-02-13 16:04:39

标签: android android-activity android-intent

我使用Intent从主要活动开始活动:

Intent i = new Intent(getApplicationContext(), InfoChiamata.class);
i.putExtra("codice_cliente", codice_cliente[tv_clicked_id]);
i.putExtra("descrizione_chiamata", descrizione_chiamata[tv_clicked_id]);
startActivity(i);

如何编辑从Intent开始的活动开始的主要活动ui? 我怎么知道我什么时候从第二个活动回到主要活动?我试图覆盖onResume和onStart方法,但应用程序甚至没有启动。我试图在调用应用程序崩溃时覆盖onRestart方法。

@Override
protected void onRestart() { 
    if(call_back == 1)
        Toast.makeText(getApplicationContext(), "asd", Toast.LENGTH_LONG).show();
}

当辅助活动启动时,call_back变量设置为1。

谢谢,Mattia

3 个答案:

答案 0 :(得分:8)

尝试使用startActivityForResult,它会为您提供第一个活动的回调。也不要使用应用程序上下文,除非绝对必要,否则请使用活动上下文。此外,当您从活动类调用某些方法并覆盖它们时,如onRestart或onStop或onResume,您必须首先在方法内部执行super.onResume(),确保应用程序生命周期不会中断。

答案 1 :(得分:2)

尝试使用

开始新的活动
startActivityForResult(i, 1);

然后,在您的主要活动中,使用此代码捕获用户离开第二个活动并返回第一个活动时:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //your request code will be 1 since you started the 
    //activity with result 1. Your result code will be detemined 
    //by if the activity ended properly. 

}

答案 2 :(得分:1)

听起来好像你想使用startActivityForResult(Context,Intent)来调用你的第二个活动。执行此操作时,您的第二个活动可以向调用它的活动返回一个值,您可以决定从那里做什么。当第二个活动完成后,您的第一个活动将收到回调。这告诉您的第一个活动,第二个活动已完成,并传递第二个活动中发生的结果。

此处的Android文档中对此进行了解释:http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent,%20int