【发布时间】:2017-09-11 04:55:49
【问题描述】:
我在那做了一个 3 页的活动
- 闪屏
- 主要活动
- 结果
所以我在这里将一个值从MainActivity 和URL 查询字符串传递给服务器到那里的Results 页面,它将显示结果。
我就是这样路过
主活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.maina);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar2);
setSupportActionBar(toolbar);
final Button click = (Button) findViewById(R.id.sc);
click.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
MainActivity.this.finish();
//MainActivity.this.finishAndRemoveTask();
Intent la = new Intent(MainActivity.this, Results.class);
la.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
la.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
la.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
la.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(la);
}
});
}
所以它会显示一些值作为结果。在那里,我在9000ms 之后添加了一个结果处理程序,它将再次返回到MainActivity
结果:
new android.os.Handler().postDelayed(new Runnable() {
@Override
public void run() {
Results.this.finish();
Intent v = new Intent(Results.this, SplashScreen.class);
v.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
v.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
v.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
v.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(v);
}
}, 9000);
在主要活动的部分,我添加了一个关于退出整个应用程序是/否选项的后按警报
主活动:
@Override
public void onBackPressed() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
alertDialogBuilder.setTitle("Do You Want to Exit App!");
alertDialogBuilder
.setMessage("Click Yes to Exit!")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveTaskToBack(true);
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
这里它已成功退出应用程序,但是当我重新打开应用程序时,它从 Results 页面开始,即使我正在处理程序中从 Results 移动到 SplashScreen。
这里我已经在 MainActivity 中删除了
/* @Override
protected void onResume() {
super.onResume();
}*/
但它总是从Results 页面开始。谁能建议如何完全退出此应用或如何停止从结果页面恢复?
更新
这里有退出问题...我在按下退出选项时给出了退出选项
所以我有两种情况
场景 1
当我启动应用程序时,它将从SplashScreen --> MainActivity 开始。所以我在这里退出应用程序MainActivity - 它退出很好。这里的出口工作正常。
当我退出后重新打开应用程序时,它将从SplashScreen开始--> MainActivity
场景 2
它开始与第一个相同,但在MainActivity 我有一个按钮。当我单击该按钮时,我将传递一个带有Intent 的URL 查询字符串,然后它将在9000 毫秒后从Results 页面开始,它将再次转到SplashScreen --> MainActivity
所以我也在MainActivity退出应用程序
但是当我退出后重新打开应用程序时,它将从Results 页面表单开始并执行该处理程序,甚至一次又一次地转到SplashScreen
谁能建议我给MainActivityonCreate()和onBackPressed()....的遗漏。
没有onResume().. 但我面临与Scenario2 相同的问题。
【问题讨论】:
-
你在哪里调用启动结果活动的第一段代码?
-
我正在使用 Intent 在
OnCreate()调用结果活动 -
@MLN 不,伙计,他的意思是用哪种方法?在下面查看我的答案
-
@MLN 是的,但你在哪里称呼它?请发布更多代码。
-
请每隔 1 年检查一次我的更新代码
标签: android android-activity exit