我使用Async Class作为子类。成功完成后,我想去一个活动,假设ListActivity。
但是在达到ListActivity之后,当我点击“返回”时它会回到之前的活动本身。所以我尝试了“完成()”。但是我收到了一个错误。
我的代码看起来像。
protected void onPostExecute(String result) {
if(flags.equals(1)){
Intent homepage = new Intent(GCMIntentService.this, ListActivity.class);
homepage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(homepage);
finish();
}
else {
任何人都可以知道如何在Async Subclass中使用finish()吗?
提前致谢
答案 0 :(得分:0)
启动意图后删除当前活动,调用currentActivity.this.finish();
protected void onPostExecute(String result) {
if(flags.equals(1)){
Intent homepage = new Intent(GCMIntentService.this, ListActivity.class);
homepage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(homepage);
currentActivity.this.finish()
...
}
答案 1 :(得分:0)
YourClassName.this.finish()
其中YourClassName
是包含AsyncTask
的类的名称。
编辑: GCMIntentService
实际上是GCMBaseIntentService
的实例,而不是Activity
。因此它没有finish()
方法。停止服务的正确方法是致电stopSelf()
(doc here)。因此,要停止服务,请致电GCMIntentService.this.stopSelf()
。你可能不需要这样做,因为当你开始新的Activity
时,Android很可能会为你处理它。
注意:GCMBaseIntentService
已被弃用,现在最好使用Google Cloud Messaging API。