Fix new task starting in samples

Added correct intent action and category. Added separate case to
show the behavior with and without FLAG_ACTIVITY_MULTIPLE_TASK.

Bug: 28848683
Change-Id: I4ba3908b7331e6d4c5f2d78c0a861e00487fcae4
This commit is contained in:
Andrii Kulian
2016-06-01 18:48:53 -07:00
parent e3d3154c1a
commit e5d940bda0
3 changed files with 45 additions and 17 deletions

View File

@@ -30,10 +30,15 @@
android:layout_height="wrap_content"
android:text="@string/launch_settings_adjacent" />
<Button
android:id="@+id/launch_new_task"
android:id="@+id/launch_new_task_single"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/launch_new_task" />
android:text="@string/launch_new_task_single" />
<Button
android:id="@+id/launch_new_task_multiple"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/launch_new_task_multiple" />
<Button
android:id="@+id/launch_new_task_adjacent"
android:layout_width="wrap_content"

View File

@@ -17,7 +17,8 @@
<resources>
<string name="launch_settings_adjacent">Launch settings adjacent</string>
<string name="launch_new_task">Launch new task</string>
<string name="launch_new_task_single">Launch new task, single allowed</string>
<string name="launch_new_task_multiple">Launch new task, multiple allowed</string>
<string name="launch_new_task_adjacent">Launch new task adjacent</string>
<string name="instance_number">Instance number:</string>
</resources>

View File

@@ -34,7 +34,8 @@ public class LaunchingAdjacentActivity extends Activity implements View.OnClickL
super.onCreate(savedInstanceState);
setContentView(R.layout.launching_adjacent_layout);
findViewById(R.id.launch_settings_adjacent).setOnClickListener(this);
findViewById(R.id.launch_new_task).setOnClickListener(this);
findViewById(R.id.launch_new_task_single).setOnClickListener(this);
findViewById(R.id.launch_new_task_multiple).setOnClickListener(this);
findViewById(R.id.launch_new_task_adjacent).setOnClickListener(this);
if (savedInstanceState != null) {
mInstanceNumber = savedInstanceState.getInt(INSTANCE_NUMBER_KEY);
@@ -47,22 +48,43 @@ public class LaunchingAdjacentActivity extends Activity implements View.OnClickL
@Override
public void onClick(View v) {
if (v.getId() == R.id.launch_settings_adjacent) {
Intent intent = new Intent("android.settings.SETTINGS");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
startActivity(intent);
} else if (v.getId() == R.id.launch_new_task) {
Intent intent = new Intent(this, LaunchingAdjacentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} else if (v.getId() == R.id.launch_new_task_adjacent) {
Intent intent = new Intent(this, LaunchingAdjacentActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK
| Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
startActivity(intent);
switch (v.getId()) {
case R.id.launch_settings_adjacent: {
Intent intent = new Intent("android.settings.SETTINGS");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
startActivity(intent);
}
break;
case R.id.launch_new_task_single: {
Intent intent = newAdjacentActivityIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
break;
case R.id.launch_new_task_multiple: {
Intent intent = newAdjacentActivityIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
startActivity(intent);
}
break;
case R.id.launch_new_task_adjacent: {
Intent intent = newAdjacentActivityIntent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK
| Intent.FLAG_ACTIVITY_LAUNCH_ADJACENT);
startActivity(intent);
}
break;
}
}
private Intent newAdjacentActivityIntent() {
Intent intent = new Intent(this, LaunchingAdjacentActivity.class);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
return intent;
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
savedInstanceState.putInt(INSTANCE_NUMBER_KEY, mInstanceNumber);