Jun*_*ned 19 android android-intent
我正在开发应用程序,我想在按钮点击关闭整个应用程序.我知道在android中我们不应该考虑关闭应用程序,因为android会自动执行此操作退出应用程序不满意吗?.但我想关闭我的申请.
所以我正在做什么来关闭应用程序是我使用Intent.FLAG_ACTIVITY_CLEAR_TOP标志来删除活动堆栈.
Intent intent = new Intent(Activity3.this, FinishActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
在FinishActivity.class我打电话的onCreate,this.finish()但应用程序没有关闭,之前的活动重新打开.
FinishActivity.class
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.finish();
}
Run Code Online (Sandbox Code Playgroud)
更新:
这是场景
MainActivity->Activity2->Activity3->FinishActivity
Run Code Online (Sandbox Code Playgroud)
这Activity2是在完成活动后打开的.
我如何实现这一目标?任何想法和建议将不胜感激.
感谢和问候
Iss*_*ZH. 34
试一试.这应该清除您的活动堆栈.
Intent i = new Intent(this,MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
ken*_*484 20
这最终100%的时间对我有用.我独立尝试了所有标志,从未适用于所有代码实例.使用我想要这个功能的所有标志,大约5个不同的地方,现在它可以工作.
Intent intent = new Intent(actvSignIn.this, actvNearbyPlaces.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
Hul*_*ulk 19
用这个 -
Intent intent = new Intent(Activity3.this, FinishActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
编辑 - 新的答案,将完美地工作..
举一个例子......相应地做你的项目需要 -
我正在服用三个ActivityA,B和C类.我在C类活动的视图中应用了一个关闭按钮.如果你想通过后退按钮然后你可以转到上一个活动,当你按下关闭按钮然后你会退出应用程序..看看 -
public class AActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent i = new Intent(this, B.class);
startActivityForResult(i, 1);
}
@Override
protected void onActivityResult(final int requestCode,
final int resultCode, final Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == 5) {
finish();
}
}
}
Run Code Online (Sandbox Code Playgroud)
参加下一堂课 -
public class B extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.b);
Intent i = new Intent(this, C.class);
startActivityForResult(i, 2);
}
@Override
protected void onActivityResult(final int requestCode,
final int resultCode, final Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == 5) {
setResult(5);
finish();
}
}
}
Run Code Online (Sandbox Code Playgroud)
采取最后的活动 -
public class C extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c);
}
// close button..set by xml view..you can set it by button listener.
public void close(View v) {
setResult(5);
finish();
}
}
Run Code Online (Sandbox Code Playgroud)
希望它能解决你的问题.
| 归档时间: |
|
| 查看次数: |
29839 次 |
| 最近记录: |