Your SlideShare is downloading. ×
Exploding Head Issues
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Exploding Head Issues

288
views

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
288
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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