Successfully reported this slideshow.
Your SlideShare is downloading. ×

Exploding Head Issues

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 10 Ad
Advertisement

More Related Content

Slideshows for you (14)

Similar to Exploding Head Issues (20)

Advertisement

Recently uploaded (19)

Exploding Head Issues

  1. 1. Exploding head issues<br />May collection<br />
  2. 2. Be careful with Threads<br />What’s wrong with that code?<br />2<br />publicclass Main extends Activity {<br />private Thread t = new Thread() {<br />publicvoid run() {<br />doWork();<br /> };<br />}<br /> ...<br />}<br />
  3. 3. Они только и ждут, чтобы подставить тебя<br /> Этот код приведет к лику всей активити и всего, на что она ссылается.Утечка происходит из-за добавления Thread в ThreadGroup при его создании.<br />http://code.google.com/p/android/issues/detail?id=7979<br />3<br />
  4. 4. Всегда закрывайте файловые потоки<br />4<br />privatevoidreadFromFile(String filename) <br />throwsFileNotFoundException, IOException{<br /> File f = new File(filename);<br />InputStreaminputStream = null;<br />try {<br />inputStream = newFileInputStream(f);<br />//do read operations<br /> } finally {<br />if (inputStream != null) {<br />try {<br />inputStream.close();<br /> } catch (IOException e) {<br />//Log or ignore<br /> }<br /> }<br /> }<br /> }<br />
  5. 5. иначе<br /> Ваш процесс прибьют, как только пользователь решит примонтировать SD-Карту.<br />5<br />
  6. 6. МЕНЮ<br /> Никогда, если не преследуете особой цели, не перекрывайте метод onMenuItemSelected() Activity. Существуют два специальных метода onOptionsItemSelected() и onContextItemSelected().<br />6<br />
  7. 7. Pending intent<br />7<br />privatevoidpostNotification(Intent intent) {<br /> ...<br /> Context context = getApplicationContext();<br />CharSequencecontentTitle = "My notification";<br />CharSequencecontentText = "Hello World!";<br />PendingIntentcontentIntent = PendingIntent.getActivity(this, 0, intent, 0);<br />notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);<br />mNotificationManager.notify(NOTIFICATION_ID, notification);<br /> }<br />
  8. 8. PENDING INTENT FLAGS<br />8<br /> Если не хотите получить непрадсказуемое поведение, всегда обращайте внимание на флаги у PendingIntent<br />
  9. 9. EXCESS SCROLL ON SAMSUNG LISTVIEW<br /> Производители могут легко вносить изменения в базовые классы платформы. Если вы добавляете «свое» поведение, перекрывая один из методов компонента, будьте готовы, что ваше решение может провалиться на некоторых девайсах. Например, это касается практически всех реализаций pull-to-refresh, что я видел.<br />9<br />
  10. 10. СПАСИБО<br />Презентацию подготовил <br />Шауберт Александр <br />shaubert.alexander@gmail.com<br />Специально для Android May Days 2011<br />10<br />

×