当我点击Dialog中的"NO"按钮时,我想关闭android中的总应用程序.我使用了以下代码.
protected Dialog onCreateDialog(int id) {
switch (id) {
case 0:
AlertDialog.Builder builder1 = new AlertDialog.Builder(this);
builder1.setTitle("GASIMIZER");
builder1.setCancelable(false)
.setPositiveButton("YES",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Intent i = new Intent(Finalpage.this,NewproActivity.class);
startActivity(i);
}
})
.setNegativeButton("NO",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which)
{
quit();
}
});
AlertDialog alert1 = builder1.create();
alert1.show();
break;
}
return null;
}
public void quit() {
onDestroy();
}
Run Code Online (Sandbox Code Playgroud)
请任何人告诉我如何解决这个问题.
让我们做一点简单.假设你有一个类Constants.java,你把所有重用的应用程序的常量放在那里.在那里声明一个这样的活动栈:
public static ArrayList<WeakReference<Activity>> activity_stack=new ArrayList<WeakReference<Activity>>();
/**
* Add the activity as weak reference to activity stack.
* @param act
*/
public static void addToActivityStack(Activity act)
{
WeakReference<Activity> ref = new WeakReference<Activity>(act);
activity_stack.add(ref);
}
Run Code Online (Sandbox Code Playgroud)
每当你创建一些活动时,在最后一行的onCreate中你会输入如下内容:
Constants.addToActivityStack(this);
Run Code Online (Sandbox Code Playgroud)
现在定义一个像下面这样的方法 Constants.java
/**
* Kill all the activities on activity stack except act.
* To kill all the passed parameter should be null.
*/
public static void killAllExcept(Activity act)
{
for(WeakReference<Activity> ref:Global.activity_stack)
{
if(ref != null && ref.get() != null)
{
if(act != null && ref.get().equals(act))
{
continue;//dont finish this up.
}
ref.get().finish();
}
}
activity_stack.clear();//but clear all the activity references
}
Run Code Online (Sandbox Code Playgroud)
现在,当您需要完成所有活动时,只需致电Constants.killAllExcept(null)或Constants.killAllExcept(this)是否要保留此活动.
当您想要保留一个活动但是其他活动/如果您想要完成所有活动时,此方法很方便.
您可以finish()在您的活动上调用该方法并以编程方式调用主屏幕(模拟主页按钮),如下所示:
private void endApplication() {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6488 次 |
| 最近记录: |