2013-02-26 3 views
0

Я работаю над приложением для рисования, где пользователь может разделить изображение на чертеже пластины, и, используя следующий код:андроида: рисунок исчезает после того, как Gmail

share = new Intent(Intent.ACTION_SEND); 
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(attachment)); 
share.setType("image/png"); 
context.startActivity(Intent.createChooser(share, "Share Drawing")); 

Хотя изображение может быть отправлено через WhatsApp или gmail и т. д., после завершения действия gmail и возврата в приложение рисунок чертежной таблички исчез.

Однако для whatsapp рисунок будет сохранен после обмена.

Кто-нибудь знает, почему и как рисунок может оставаться в drawView после возвращения gmail (после перехода в другое приложение и возобновления)? Большое спасибо!

+0

Вы зарегистрировали жизненный цикл своей деятельности? Мое лучшее предположение заключается в том, что ваша деятельность уничтожается и воссоздается при переходе на gmail, но это не так, когда вы идете в whatsapp. –

+0

На самом деле, я не знаком с жизненным циклом деятельности ... если тогда как это можно проверить и каково его решение? – pearmak

+0

http://developer.android.com/reference/android/app/Activity.html ссылка на документ разработчика. –

ответ

0

Это будет регистрировать ваши основные обратные вызовы жизненного цикла вашей деятельности, а затем вы можете изучить их в своем логарифме. Вероятно, вам придется сохранить некоторую информацию о вашем изображении в обратном вызове onSaveInstanceState, а затем восстановить его в своем обратном вызове onCreate, считая, что ваша деятельность действительно уничтожается и воссоздается, но это похоже на то, что происходит.

public class MyActivity exetends Activity { 
     private final String TAG = "MyActivity"; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      Log.d(TAG, "onCreate") 
     } 

     @Override 
     protected void onStart() { 
      Log.d(TAG, "onStart") 
     } 

     @Override 
     protected void onRestart() { 
      Log.d(TAG, "onRestart") 
     } 

     @Override 
     protected void onResume() { 
      Log.d(TAG, "onResume") 
     } 

     @Override 
     protected void onPause() { 
      Log.d(TAG, "onPause") 
     } 

     @Override 
     protected void onStop() { 
      Log.d(TAG, "onStop") 
     } 

     @Override 
     protected void onDestroy() { 
      Log.d(TAG, "onDestroy") 
     } 
     @Override 
     protected void onSaveInstanceState(Bundle outBundle) { 
      Log.d(TAG, "onSaveInstanceState); 
     } 

} 
+0

спасибо большое !! позвольте мне исследовать и вернуться как можно скорее! Большое спасибо! – pearmak

+0

это потому, что дорожки нарисованы все еще там, но фоновое растровое изображение исчезло. я добавил следующее внутри OnCreate if (savedInstanceState == null) { } else { ???? }, но не знаете, как вернуть растровое изображение. – pearmak

+0

Привет, прошу прощения, но я не думаю, что я вполне понимаю ваш вопрос. –

Смежные вопросы