Android – Restart App

The title isn’t exactly accurate – you can’t “restart” an app per se – but you can get pretty close:

This starts the Activity specified in your manifest as the “LAUNCHER”, in a new task stack (history), and clear the existing stack.

Android – get system defined ActionBar size (height)

In xml, you can use ?attr/actionBarSize, but if you need access to that value in Java…

Android – View traversal / walker / finder utilities

Android – LinearLayout with dividers (separators)

Add (or amend) your values/attrs.xml to include:

Some layout:

And the class:

Android – launch modes and multiple intents

The behavior here isn’t quite what I expected, or gather from the documentation. If you have <activity android:name=”.SomeActivity” android:launchMode=”singleTop” /> Then you start SomeActivity multiple times:

You’ll get only one instance of SomeActivity at the top of the stack (as the singleTop launch mode promises), but you’ll notice that if you finish() or hit […]

Android – get default text size

Possibly useful in precomputing layout requirements…

Java – Unexpected Bounds when extending a typed Class

When extending a typed class without specifying the type, just pass the type to the subclass’s erasure and specify that type in the reference to the superclass. E.g.,

As an example, consider the AOSP class RecyclerView.Adapter, which is declared as:

A normal concrete implementation is fairly straightforward:

But what if you want […]

Java – Super Class constructor fired before SubClass members are initialized

Probably unexpected behavior:

There’s not a direct way to work around this – often initialization or setup methods are used, sometimes with a Factory instance generator.

Android – SteakKnife – simple ViewBinding with annotations

Butterknife, like most things by Square and/or Jake Wharton, is a very handy, very popular library. One thing that was really nice was how small and simple it was. The latest version, however, is a lot less simple, and requires multiple gradle dependencies and the apt plugin. Not a huge lift, but not exactly as […]

Android – get removable SD card location

This is a little tricky, and isn’t precisely a version limitation. Here’s why, and how I’ve found the most reliable way to get it. 1. Environment.isExternalStorageRemovable (without parameters) is API 9+, so has broad support. If your devices primary external storage location is removable, then this will return the location you want – done. 2. […]