2016-05-16 7 views
0

Я использую диалог совместного доступа для совместного использования текста в твиттере с помощью кода ниже.Запуск функции после использования Share Android

postTweetAfterIntentVar = 1; 

Intent tweetIntent = new Intent(Intent.ACTION_SEND); 
tweetIntent.setAction(Intent.ACTION_SEND); 
tweetIntent.putExtra(Intent.EXTRA_TEXT, "tweet text here"); 
tweetIntent.setType("text/plain"); 
startActivity(Intent.createChooser(tweetIntent, "Share this via")); 

И я хочу запустить функцию после завершения операции обмена. Я использую код ниже, но ничего не происходит после того, как операция обмена с намерением завершена. Я что-то делаю неправильно? Любая помощь будет большой.

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 


    if (postTweetAfterIntentVar == 1) { 

     postTweetAfterIntentVar = 0; 

      postTweetFunc(); 


    } 


} 

ответ

1

onActivityResult() не будет вызван, если вы начинаете вашу деятельность с помощью startActivity().

onActivityResult() получает вызов после начала любой активности с использованием startActivityFoResult(), а не startActivity(). Итак, когда вы начинаете активность с использованием startActivityFoResult(), вызываемая деятельность устанавливает результат с использованием setResult(), а затем вы получаете этот результат в onActivityResult().

+0

Привет, Shadab, поэтому замена startActivity() с помощью startActivityForResult() будет достаточным? – saner

+0

Да и в 'onActivityResult()' вы можете проверить конкретный 'requestCode'. –