android 子activity启动模式:singleTask,如何判断子activity是否通过点击桌面图标启动
时间: 2024-04-10 12:33:57 浏览: 94
对于子Activity使用singleTask启动模式的情况,判断子Activity是否通过点击桌面图标启动的方法与前面所述的一般情况略有不同。可以通过以下步骤来判断:
1. 在父Activity(即singleTask模式的Activity)的`onCreate()`方法中,使用`getIntent().getExtras()`获取启动该Activity的Intent中的Extras数据。
```java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
if (extras != null && extras.getBoolean("isLaunchFromLauncher", false)) {
// 通过点击桌面图标启动子Activity
} else {
// 其他方式启动子Activity
}
}
```
2. 在启动子Activity时,通过Intent的`putExtra()`方法将一个标志位设置为true,表示通过点击桌面图标启动。
```java
Intent intent = new Intent(this, YourChildActivity.class);
intent.putExtra("isLaunchFromLauncher", true);
startActivity(intent);
```
通过以上方法,你可以在父Activity中判断子Activity是否通过点击桌面图标启动,并根据需要执行相应的逻辑。注意要在启动子Activity时设置额外的标志位来传递信息。
阅读全文