让我们考虑简单的数据库访问应用程序,它有两个活动:
应用程序以A(列表)开头,用户可以转到B(输入表单)。
为了更有效地输入新数据,我创建了一个小部件直接跳转到B(PendingIntent)。
应用程序的观察行为如下:
当用户从A启动B时,2中描述的行为是正常的。但是当我从小部件启动B时我想避免它。
任何提示?
答案 0 :(得分:0)
我有一种情况需要做类似的事情。我的快速解决方法是为小部件启动的Intent添加"EXTRA_LAUNCHED_BY_WIDGET"
Extra。然后,在我的活动中,我将其视为特例。
我需要覆盖Back按钮行为,但您可以在其他地方轻松使用此案例,例如在其他重写的活动方法中。
@Override
public void onBackPressed()
{
Bundle extras = getIntent().getExtras();
boolean launchedFromWidget = false;
if (extras.containsKey("EXTRA_LAUNCHED_BY_WIDGET"))
{
launchedFromWidget = extras.getBoolean("EXTRA_LAUNCHED_BY_WIDGET");
}
if (launchedFromWidget)
{
// Launched from widget, handle as special case
}
else
{
// Not launched from widget, handle as normal
}
}