2013-06-04 176 views
1

因此,我正在启动更新并将其作为消息发送。当消息是我希望它回到应用程序的主屏幕。我有我认为会这样做,但它只是快速打开其他活动,然后关闭它,并加载主屏幕。如何在完成发送消息后将活动返回到主屏幕活动。启动和活动完成后活动

public void send(View view) 
{ 

    savePhoto(); 
    Uri imageUri = Uri.fromFile(pictureFile); 
    Intent sendIntent = new Intent(Intent.ACTION_SEND); 
    sendIntent.setType("image/jpeg"); 
    sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
    close(); 
    //This activity opens and quickly closes 
    startActivity(Intent.createChooser(sendIntent, "Send:")); 
    startActivity(home); 


} 
+0

我不明白,如果你想回到以前的屏幕发送后,为什么要调用startActivity?为什么不完成()呢? –

回答

0

你所寻找的是startActivityForResult(ref):

private final static int MY_REQUEST_CODE = 0; 

public void send(View view) { 
    ... 
    startActivityForIntent(Intent.createChooser(sendIntent, "Send:")); 
} 


protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == MY_REQUEST_CODE) { 
     if (resultCode == RESULT_OK) { 
      //You can check for any result set from request activity 
      //Set your own results using Activity.setResult(int); 
      startActivity(home); 
     } 
    } 
} 
+0

我刚刚复制并粘贴了你的'onActivityResult'代码,但它仍然返回到前一个活动并调用onResume();' –

0

尝试这个 -

public void send(View view) 
{ 

savePhoto(); 
Uri imageUri = Uri.fromFile(pictureFile); 
Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.setType("image/jpeg"); 
sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri); 
close(); 
startActivity(Intent.createChooser(sendIntent, "Send:")); 
Intent i=new Intent(this,Home.class); 
startActivity(i); 
finish(); 
}