Exploding head issues<br />May collection<br />
Be careful with Threads<br />What’s wrong with that code?<br />2<br />publicclass Main extends Activity {<br />private Thr...
Они только и ждут, чтобы подставить тебя<br />	Этот код приведет к лику всей активити и всего, на что она ссылается.Утечка...
Всегда закрывайте файловые потоки<br />4<br />privatevoidreadFromFile(String filename) <br />throwsFileNotFoundException, ...
иначе<br />	Ваш процесс прибьют, как только пользователь решит примонтировать SD-Карту.<br />5<br />
МЕНЮ<br />	Никогда, если не преследуете особой цели, не перекрывайте метод onMenuItemSelected() Activity. Существуют два с...
Pending intent<br />7<br />privatevoidpostNotification(Intent intent) {<br />        ...<br />        Context context = ge...
PENDING INTENT FLAGS<br />8<br />	Если не хотите получить непрадсказуемое поведение, всегда обращайте внимание на флаги у ...
EXCESS SCROLL ON SAMSUNG LISTVIEW<br />	Производители могут легко вносить изменения в базовые классы платформы. Если вы до...
СПАСИБО<br />Презентацию подготовил <br />Шауберт Александр <br />shaubert.alexander@gmail.com<br />Специально для Android...
Upcoming SlideShare
Loading in...5
×

Exploding Head Issues

315

Published on

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
315
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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 />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×