Android - 从另一个活动完成活动
有什么办法,如何从堆栈中完成某些活动?我有服务,它会查找更新,当找到更新时,它会打开更新活动,其中将显示安装提示。但是在安装出现后,我想完成更新活动,因为没有必要仍然在堆栈中。Android - 从另一个活动完成活动
感谢
如果更新活动正在启动另一个安装活动,那么您可能希望在更新活动中覆盖void onActivityResult(int requestCode, int resultCode, Intent intent)
,并提供以下实施。另外,当更新活动启动安装活动时,它应该使用startActivityForResult(Intent, int)
而不是startActivity(Intent)
。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
finish();
}
使用完成()的活动类的方法来完成某些活动
this.finish(); // you can also use the application context instead of this
希望这会帮助你。
但是安装后,我想完成更新活动,因为它不需要仍然在堆栈上。
当你的“更新活动”呼吁startActivity()
,弹出“安装”,它立刻拨打finish()
本身。
是的,问题是我从AsyncTask开始新的活动,所以我不能完成()本身 – Waypoint 2011-04-02 12:51:35
@Hmyzak:永远不要从'AsyncTask'开始一个新的活动。这是用户敌对的,导致一个活动随机出现而没有警告。 – CommonsWare 2011-04-02 12:55:34
通过AsyncTask我正在下载文件进行更新,当我完成下载时,我使用onPostExecute来安装此应用程序。我没有别的办法,你呢? – Waypoint 2011-04-02 13:00:26
请尝试此操作。
在第一个活动中,在onCreate之前定义这个。
static TabsViewPagerFragmentActivity activityMain;
然后,在onCreate的第一个活动中,写下这个。
activityMain = this;
然后,在第二个活动中,当你想完成第一个活动时写下这个。
TabsViewPagerFragmentActivity.activityMain.finish();
这会破坏第一个活动,当您按下第二个活动时,您将直接返回主页。
对活动的静态引用 - 内存泄漏 – Lester 2016-11-13 10:12:22
非常有用的代码
classname.static object.finish();
这是一种糟糕的或良好的做法? – 2013-06-05 19:50:45
感谢您的评论 – Waypoint 2011-04-02 14:02:34