Knowing info of current activity 1 2 3 4 5 6 7 8 public class BaseActivity extends Activity { private final String TAG = getClass().getSimpleName(); @Override protected void onCreate (Bundle savedInstanceState) { super .onCreate(savedInstanceState); Log.d("BaseActivity" , TAG); } }
Finish all activities 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 public class ActivityCollector { public static List<Activity> activities = new ArrayList<Activity>(); public static void addActivity (Activity activity) { activities.add(activity); } public static void removeActivity (Activity activity) { activities.remove(activity); } public static void finishAll () { for (Activity activity : activities) { if (!activity.isFinishing()) { activity.finish(); } } } } public class BaseActivity extends Activity { @Override protected void onCreate (Bundle savedInstanceState) { super .onCreate(savedInstanceState); Log.d(TAG, "Msg" ); ActivityCollector.addActivity(this ); } @Override protected void onDestroy () { super .onDestroy(); ActivityCollector.removeActivity(this ); } } public class ThirdActivity extends BaseActivity { @Override protected void onCreate (Bundle savedInstanceState) { super .onCreate(savedInstanceState); Log.d("ThirdActivity" , "Task id is " + getTaskId()); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.third_layout); Button button = (Button) findViewById(R.id.button); button3.setOnClickListener(new OnClickListener() { @Override public void onClick (View v) { ActivityCollector.finishAll(); } }); } }
Start a activity Old school 1 2 3 4 Intent intent = new Intent(FirstActivity.this, SecondActivity.class) ; intent.putExtra("param1" , "data1" ) ; intent.putExtra("param2" , "data2" ) ; startActivity(intent) ;
Do this Define a method in the target activity1 2 3 4 5 6 7 8 9 public class SecondActivity extends BaseActivity { public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent (context, SecondActivity .class ); intent.putExtra("param1" , data1); intent.putExtra("param2" , data2); context.startActivity(intent); } …… }
Then1 2 3 4 5 6 button.setOnClickListener(new OnClickListener() { @Override public void onClick (View v) { SecondActivity.actionStart(FirstActivity.this , "data1" , "data2" ); } });