我正在开发一个Android应用程序。所以在那里我有一个名为" Aboutus"的按钮。当我点击那个时,它会启动另一个活动并显示相应的视图。
以下是按钮关于点击事件的代码。
aboutus.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this,AboutUs.class);
startActivity(intent);
}
});
}
然后在那个aboutus活动中我有后退按钮。当我们按下后退按钮时它将再次进入主活动。 后退按钮键事件就像这样......
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(AboutUs.this,MainActivity.class);
intent.putExtra("aboutus", true);
startActivity(intent);
finish();
System.exit(0);
}
});
这里我为其他目的添加了一些额外的意图。在这种情况下,它们并不重要。所以然后在mainactivity我有退出按钮。这应该杀死整个应用程序。
我的退出按钮代码就是这样。
exit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
finish();
System.exit(0);
}
});
除了一个场景外,退出按钮完美运行(它结束了应用程序)。如果我们点击aboutus并进入那个活动,然后按下关于该活动的后退按钮,然后再次回到主要活动,最后当我想要退出它不会杀死整个应用程序,而是再次进入关于活动。
总之, MainActivity --->点击aboutus按钮(这里没问题。这将启动aboutus活动)
关于----->点击后退按钮(这也可以。返回主要活动)
MainActivity - >退出按钮(不工作。再次进入aboutus活动)
那么如何解决这个问题?
答案 0 :(得分:2)
我不知道为什么你必须开始NSMutableURLRequest *request1 = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:URL]];
[request1 setHTTPMethod:@"GET"];
NSURLResponse *response;
NSData *oResponseData = [NSURLConnection sendSynchronousRequest:request1 returningResponse:&response error:nil];
NSString *responseString = [[NSString alloc] initWithData:oResponseData encoding:NSUTF8StringEncoding];
NSLog(@"jsonData: %@", responseString);
...用户可以只按下后退按钮,只要它在活动堆栈上。 MainActivity.java
也很糟糕。只需使用system.exit(0)
优雅地完成应用即可
如果你想在aboutUS完成后将某些内容传递给活动,你可以查找finish()
方法。
答案 1 :(得分:0)
使用意图标记ACTIVITY_CLEAR_TOP清除其上的所有活动:
Intent intent = new Intent(AboutUs.this,MainActivity.class);
intent.putExtra("aboutus", true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent);
FLAG_ACTIVITY_CLEAR_TOP来自doc:
如果设置,则正在启动的活动已在运行中 当前任务,然后而不是启动它的新实例 活动,其上的所有其他活动将被关闭 这个意图将作为一个传递到(现在在顶部)旧活动 新的意图。