标签: activity-finish

如何从Application对象调用activity方法finish()?

我有一段代码来删除数据库中的Item.我从两个不同的活动中调用相同的代码.因此,为了避免代码重复,我想将代码转移到Application对象.其中一个活动中的代码如下所示:

private void deleteItem() {
    AlertDialog.Builder alert = new AlertDialog.Builder(Activity1.this);
    alert.setTitle(R.string.confirmTitle);
    alert.setMessage(R.string.confirmMessage);
    alert.setPositiveButton(R.string.delete_btn,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int button) {
                    final DbHelper db = new DbHelper(Activity1.this);
                    AsyncTask<Long, Void, Object> deleteTask = new AsyncTask<Long, Void, Object>() {
                        @Override
                        protected Object doInBackground(Long... params) {
                            db.deleteItem(params[0]);
                            return null;
                        }

                        @Override
                        protected void onPostExecute(Object result) {
                            finish();
                        }
                    };
                    deleteTask.execute(new Long[] { rowID });
                }
            });
    alert.setNegativeButton(R.string.cancel_btn, null).show();
}
Run Code Online (Sandbox Code Playgroud)

现在将它放在应用程序对象中,我将函数更改为public,为输入提供了两个参数:Context和rowID.但是在AsyncTask的onPostExecute方法中,我必须关闭活动.在活动中,我通过finish()完成了这个.在这种情况下我该怎么做?我也在应用程序对象中附加了代码.

public void deleteItem(final Context context, final long rowID) {
    AlertDialog.Builder alert …
Run Code Online (Sandbox Code Playgroud)

android android-context activity-finish

3
推荐指数
2
解决办法
6380
查看次数

如何回到android中的主要活动?

我有一个MainActivity“ A”,其中有一个按钮可以启动活动“ B”,而活动“ B”有另一个按钮可以启动活动“ C”。在活动B和C中,都有onBackPressed()方法,该方法显示AlertDialog询问用户是否要返回MainActivity。如果他们按是,程序将显示MainActiviy。

问题是:在活动B中,我没有问题,只需调用finish()方法并MainActivity出现,但是问题出在活动C中,如果我调用finish()方法,程序将返回活动B。如何MainActivity从活动C返回? ?

java android activity-finish android-activity onbackpressed

3
推荐指数
1
解决办法
3128
查看次数

如何回到Android中的第3个活动?

在我的Android应用程序中,我首先搜索一个咖啡馆.当用户选择一个咖啡馆时,下一个活动将显示有关它的更多细节 然后用户可以查看咖啡馆的地图.当用户点击完成按钮时,我需要将用户重定向到搜索结果,这是第一个活动.那我该怎么做呢?调用finish()方法只会关闭当前活动.

提前致谢 !

android listactivity android-intent activity-finish android-activity

2
推荐指数
1
解决办法
4269
查看次数

活动中的Android-finish功能不起作用

我从MainActivity扩展活动A,B,C.首先开始,A开始B和B开始C.当我在活动C中使用onclick特殊按钮中的finish()时,活动A开始,但我想要活动B开始.我为这个案子做了什么?

android activity-finish android-activity

2
推荐指数
1
解决办法
122
查看次数

自"活动B"以来如何完成"活动A"?(完成其他活动)

我试图完成活动A后的活动A,它也将完成.活动B自Actvity A启动.

所以我暂停了活动A.我怎么能这样做?

android activity-finish android-activity

1
推荐指数
1
解决办法
329
查看次数

我是否需要在Android中明确完成一项活动?

当我开始一个新的活动时,我是否需要明确地完成当前的活动,或者android是否会照顾这个?

这是我在活动A中写的开始活动B:

Intent intent = new Intent(this, BActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

我应该在上面提到的两行之后通过调用下一行来结束A吗?

this.finish()
Run Code Online (Sandbox Code Playgroud)

android activity-finish android-activity

1
推荐指数
1
解决办法
1339
查看次数

从其父类完成子类活动

请考虑以下情形:
TemplateActivity扩展Activity。在onResume()其中执行布尔变量的验证,如果为false,则完成方法和活动,并开始一个新活动OtherActivity

ChildActivity扩展的类TemplateActivity运行时,它等待super.onResume()完成,然后继续,无论其父级是否需要启动Intent

问题:当需要从那里开始时,
是否有一种方法可以终止?没有在子类中执行有效性检查。ChildActivityOtherActivityTemplateActivity

超类:

class TemplateActivity extends Activity {
    @Override
    protected void onResume() {
        super.onResume();

        if(!initialized)
        {
            startActivity(new Intent(this, OtherActivity.class));
            finish();
            return;
        }

        //Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

子类:

class ChildActivity extends TemplateActivity {
    @Override
    protected void onResume() {
        super.onResume();

        //Do stuff
    }
}
Run Code Online (Sandbox Code Playgroud)

android superclass android-intent activity-finish android-activity

1
推荐指数
1
解决办法
1367
查看次数

从静态方法完成活动

我想在类中执行静态方法来完成一个活动.我的意思是这样的:活动A,活动B,活动C,类活动杀手.Class ActivitiesKiller有一个静态方法来完成活动A,B或C.

一个例子:我的runnig类是B,我想完成活动A,所以我将调用:

ActivitiesKiller.activityKiller(A);
Run Code Online (Sandbox Code Playgroud)

那可能吗?.提前致谢

我正在做这样的事,但它不起作用.

public class ActivitiesKiller {
 //.....

public static void activityKiller(Activity activity){ 
activity.finish();}


}
Run Code Online (Sandbox Code Playgroud)

static android activity-finish

1
推荐指数
1
解决办法
1820
查看次数

Android,如何在单击对话框后退按钮时关闭应用程序?

在我的主要活动中,我调用一个可取消的对话框.当用户在未连接到Internet时午餐时,我会显示此对话框.因此,我显示此对话框,要求他连接到Internet.

此对话框没有按钮,我想在用户单击后退按钮时关闭应用程序.在onKeyDown()方法中,我正在关闭应用程序(this.finish();),但问题是当用户单击后退按钮时屏幕上显示对话框时,此对话框消失,我的主要活动显示.

似乎onKeyDown()只是在主要活动中工作而不是对话框.如何在显示对话框并用户单击后退按钮时关闭我的应用程序?

谢谢

=====> 更新

这是我的自定义对话框的代码:

private void initWarningDialog(){
        dialogWarning = new Dialog(DRMActivity.this, R.style.customDialogStyle);
        dialogWarning.setTitle("Warning!");
        dialogWarning.setContentView(R.layout.dialogwarning);
        dialogWarning.setCancelable(true);
    }
Run Code Online (Sandbox Code Playgroud)

android dialog activity-finish

0
推荐指数
1
解决办法
3913
查看次数

What is the difference between finish() and ActivityName.this.finish()?

Is there any difference between finish() and ActivityName.this.finish()? If we have activity with name SampleActivity, we can finish it by calling finish() and by SampleActivity.this.finish(). What is the difference?

android activity-finish android-activity

0
推荐指数
1
解决办法
1141
查看次数