Android 不赞成退出申请吗?
继续学习Android,我只是: 问题:用户是否可以选择终止应用程序 除非我们加入一个菜单选项来杀死它?如果没有这样的选择, 用户如何终止应用程序 答:(罗曼·盖伊):用户没有,系统会自动处理。这就是活动生命周期(特别是暂停/停止/恢复)的目的。无论您做什么,都不要使用“退出”或“退出”应用程序按钮。这对于Android的应用程序模型来说是无用的。这也与核心应用程序的工作方式相反 呵呵,在Android世界里,我每走一步都会遇到一些问题=( 显然,你不能退出Android中的应用程序(但Android系统可以在任何时候完全摧毁你的应用程序)。这是怎么回事?我开始认为不可能编写一个“正常应用程序”的应用程序-当用户决定退出应用程序时,他/她可以退出应用程序。这不应该依赖操作系统来完成 我试图创建的应用程序不是Android Market的应用程序,也不是一个供公众“广泛使用”的应用程序,而是一个将在非常狭窄的商业领域使用的商业应用程序 事实上,我非常期待Android平台的开发,因为它解决了Windows Mobile和.NET中存在的许多问题。然而,上周对我来说有点令人厌烦……我希望我不必放弃Android,但它现在看起来不是很好=( 有什么方法可以让我真正退出应用程序吗?您可以通过按后退按钮或在Android 不赞成退出申请吗?,android,Android,继续学习Android,我只是: 问题:用户是否可以选择终止应用程序 除非我们加入一个菜单选项来杀死它?如果没有这样的选择, 用户如何终止应用程序 答:(罗曼·盖伊):用户没有,系统会自动处理。这就是活动生命周期(特别是暂停/停止/恢复)的目的。无论您做什么,都不要使用“退出”或“退出”应用程序按钮。这对于Android的应用程序模型来说是无用的。这也与核心应用程序的工作方式相反 呵呵,在Android世界里,我每走一步都会遇到一些问题=( 显然,你不能退出Android中的应用程序(但Andr
活动中调用finish()
Romain并不是说这是不可能的,只是说这是毫无意义的——用户不需要关心退出或保存他们的工作或其他任何事情,因为应用程序生命周期的工作方式鼓励您编写智能软件,无论发生什么情况,都能自动保存和恢复其状态。您可以退出,可以按Back,也可以按butt或在活动中调用finish()
。如果要显式禁用它,只需从菜单项调用finish()
Romain并不是说这是不可能的,只是说这是毫无意义的——用户不需要关心放弃或保存他们的工作或其他什么,因为应用程序生命周期的工作方式鼓励您编写智能软件,无论发生什么情况,都能自动保存和恢复其状态。我认为关键是没有必要这样做除非您的软件有缺陷,否则请退出该应用程序。当用户不使用Android应用程序且设备需要更多内存时,Android将退出该应用程序。如果您的应用程序需要在后台运行服务,您可能需要一种关闭该服务的方法
例如,当应用程序不可见时,Google Listen会继续播放播客。但当用户使用完播客后,总是会有暂停按钮来关闭播客。如果我没记错的话,Listen甚至会在通知栏中设置一个快捷方式,以便您可以随时快速访问暂停按钮。另一个例子是类似twitter的应用程序例如,在互联网上不断轮询服务的应用程序。这些类型的应用程序应该真正允许用户选择轮询服务器的频率,甚至是是否在后台线程中轮询
如果需要在退出时运行代码,可以根据需要重写onPause()、onStop()或onDestroy()。
我认为关键是,除非你的软件有缺陷,否则没有必要退出应用程序。当用户不使用Android时,它会退出应用程序,并且设备需要更多内存。如果你有一个应用程序需要在后台运行服务,你可能需要一种关闭服务的方法
例如,当应用程序不可见时,Google Listen会继续播放播客。但当用户使用完播客后,总是会有暂停按钮来关闭播客。如果我没记错的话,Listen甚至会在通知栏中设置一个快捷方式,以便您可以随时快速访问暂停按钮。另一个例子是类似twitter的应用程序例如,在互联网上不断轮询服务的应用程序。这些类型的应用程序应该真正允许用户选择轮询服务器的频率,甚至是是否在后台线程中轮询
如果需要在退出时运行代码,可以根据需要重写onPause()、onStop()或onDestroy()。
由于Android环境中的应用程序只是一堆模糊相关的活动,退出应用程序并没有多大意义一个活动,并在活动堆栈中绘制上一个活动的视图。由于Android环境中的应用程序只是一堆模糊相关的活动,退出应用程序并没有多大意义。您可以完成()一个活动,并在活动堆栈中绘制上一个活动的视图。这将最终解决您的问题,但我首先要解决您在对撰写本文时已经给出的各种答案的各种评论中提出的一些问题。我无意改变您的想法,而是这是给将来来读这篇文章的人的
关键是我不能允许
Android来确定我的应用程序何时启动
就要被终止了,那一定是
用户的选择
数百万人对环境根据需要关闭应用程序的模式非常满意。这些用户根本不想“终止”Android应用程序,就像他们想“终止”网页或“终止”恒温器一样
iPhone用户
@Override
public void onStart() {
super.onStart();
isRemote = true;
checkUpdate.resume();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2000, 0, luh);
}
@Override
public void onPause() {
isRemote = false;
checkUpdate.suspend();
locationManager.removeUpdates(luh);
super.onStop();
}
public void exit() {
startActivity(new Intent(this, HomeActivity.class).
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | IntentCompat.FLAG_ACTIVITY_CLEAR_TASK).putExtra(EXIT_FLAG, true));
}
protected void onCreate(Bundle savedInstanceState) {
if (getIntent().getBooleanExtra(EXIT_FLAG, false)) {
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) == 0) {
finish();
}
}
......................
Intent intent = new Intent(this, DashBoardActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
SharedPreferences settings = getSharedPreferences(getString(PREF_ID), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(FORCE_EXIT_APPLICATION, true);
// Commit the edits!
editor.commit();
startActivity(intent);
finish();
private void checkIfForceKill() {
// CHECK IF I NEED TO KILL THE APP
// Restore preferences
SharedPreferences settings = getSharedPreferences(
getString(MXMSettingHolder.PREF_ID), Context.MODE_PRIVATE);
boolean forceKill = settings.getBoolean(
MusicSinglePaneActivity.FORCE_EXIT_APPLICATION, false);
if (forceKill) {
//CLEAR THE FORCE_EXIT SETTINGS
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean(FORCE_EXIT_APPLICATION, false);
// Commit the edits!
editor.commit();
//HERE STOP ALL YOUR SERVICES
finish();
}
}
this.pid = android.os.Process.myPid(); // Save for later use.
android.os.Process.sendSignal(pid, android.os.Process.SIGNAL_KILL);
((MySuicidalApp) context.getApplicationContext()).kill()
`YourActivityname.this.finish()`;
Intent intent = new Intent(getApplicationContext(), SMS.class);
startActivity(intent);
MainActivity.this.finish();
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(0);
getParent().finish();
public class Constants {
public static ArrayList<Activity> activities = new ArrayList<Activity>();
}
public class MainActivity extends Activity {
private ImageView imageButton;
private Activity activity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = MainActivity.this;
Constants.activities.add(activity);
imageButton = (ImageView) findViewById(R.id.camera);
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// existing app.
if (Constants.activities != null) {
for (int i = 0; i < Constants.activities.size(); i++) {
Activity s = Constants.activities.get(i);
s.finish();
}
}
//super.finish();
finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
});
}
}