android – BackButton不会调用历史堆栈中的最后一个活动

android – BackButton不会调用历史堆栈中的最后一个活动,第1张

概述我对我的活动的后退按钮有这个错误.所有活动都有这个问题.当我按下Back Button时,它进入主屏幕,而不是堆栈中的最后一次活动.我已经推出了一条Log消息,但在某些活动中它不会在LogCat上打印它,在此处发布的此活动中它会打印日志.但看起来有些活动并没有进入方法内部. 我的应用程序中有三个选项卡,其中一个扩展了ActivityGroup而不是Activity.但我不认为它的问题,我删除了这个 我对我的活动的后退按钮有这个错误.所有活动都有这个问题.当我按下Back button时,它进入主屏幕,而不是堆栈中的最后一次活动.我已经推出了一条Log消息,但在某些活动中它不会在LogCat上打印它,在此处发布的此活动中它会打印日志.但看起来有些活动并没有进入方法内部.

我的应用程序中有三个选项卡,其中一个扩展了ActivityGroup而不是Activity.但我不认为它的问题,我删除了这个标签,它一直在发生.

所以我的问题是,我该如何解决它,如何让它进入上一次活动而不是进入主屏幕?

实际上,它会进入调用它的最后一个屏幕.如果我在主屏幕上调用它,那么如果我在主屏幕上调用它,我会在其中放置快捷方式和小部件进入此屏幕.
对于我在docs中读到的内容,它应该转到历史堆栈的最后一个,这意味着这个屏幕在堆栈中,但没有我的活动.对?

我试过这个,但不适用于所有活动.它一直在主屏幕上.我不知道它能是什么.

@OverrIDe    public boolean onKeyDown(int keyCode,KeyEvent event) {        if (keyCode == KeyEvent.KEYCODE_BACK) {                finish();            return true;        }        return super.onKeyDown(keyCode,event);    }

我也试过onBackpressed()方法,但没有.而且,而不是调用完成,我尝试了一个新的意图,并调用一些活动明确,但没有.

我不能把我所有的活动放在这里因为很多.
但是这里有一个,也许如果有什么用,我可以在别人身上实施.谢谢.

public class MyActivity extends Activity {    private ListVIEw ListvIEw;    private ImageVIEw imgVIEw;    private Resources res;    private Drawable Transition;    private SimpleCursorAdapter adapter;    private DataHandlerDB handler;    private sqliteDatabase db;    private OpenHelper helper;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);                  helper = new OpenHelper(this);        db = helper.getWritableDatabase();        setBasicContent();    }    @OverrIDe    public voID onStart() {        super.onStart();        helper = new OpenHelper(this);        db = helper.getWritableDatabase();        setBasicContent();    }    @OverrIDe    public voID onDestroy() {        super.onDestroy();        DataHandlerDB.selecttopCalls(this).close();        db.close();        helper.close();    }    @OverrIDe    public voID onPause() {        super.onPause();    }    @OverrIDe    public voID onStop() {        super.onStop();        DataHandlerDB.selecttopCalls(this).close();        db.close();        helper.close();    }    @OverrIDe    protected voID onResume() {        super.onResume();        setBasicContent();    }    public voID setBasicContent() {        ListvIEw = (ListVIEw) findVIEwByID(R.ID.List_vIEw);        Cursor c = DataHandlerDB.selecttopCalls(this);              c.movetoFirst();        startManagingCursor(c);             adapter = new SimpleCursorAdapter(this,R.layout.List_item,c,new String[] { DataHandlerDB.CONTACT_name_Col,DataHandlerDB.CONTACT_NUMBER_Col,DataHandlerDB.CONTACT_DURATION_Col,DataHandlerDB.CONTACT_DATE_Col },new int[] {                        R.ID.contact_name,R.ID.phone_number,R.ID.duration,R.ID.date });               ListvIEw.setAdapter(adapter);    }}

这是扩展ActivityGroup的活动,它的调用如下:

tabHost.addTab(tabHost.newTabSpec("three").setIndicator("Filter Options",res.getDrawable(R.drawable.filteroptionsiconfile))                .setContent(new Intent(this,FilterOptionsGroup.class)));

FilterOptionsGroup.java

public class FilterOptionsGroup extends ActivityGroup {    public static FilterOptionsGroup group;    private ArrayList<VIEw> history;    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        this.history = new ArrayList<VIEw>();        group = this;        VIEw vIEw = getLocalActivityManager().startActivity(                "FilterOptions",new Intent(this,FilterOptions.class)                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_top))                .getDecorVIEw();        replaceVIEw(vIEw);    }    public voID replaceVIEw(VIEw v) {        // Adds the old one to history        history.add(v);                 // Changes this Groups VIEw to the new VIEw.        setContentVIEw(v);    }}
解决方法 如果所有活动都封装在选项卡主机中,并且它们都在选项卡中托管,那么它们实际上并不是位于堆栈中.它们位于前景视图中,即标签主机屏幕,后退按钮将您转到上一个应用程序. 总结

以上是内存溢出为你收集整理的android – BackButton不会调用历史堆栈中的最后一个活动全部内容,希望文章能够帮你解决android – BackButton不会调用历史堆栈中的最后一个活动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1124242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存