android – 返回活动,即使它有noHistory = true

android – 返回活动,即使它有noHistory = true,第1张

概述我需要知道以下流程是否正常: 活动A onPause被调用,因为活动B占据了焦点,但几秒钟后,当活动B完成时和onStop&调用了活动A的onDestroy,调用了活动A(相同的实例)onResume. 我在清单中的活动A defition中有noHistory = true. 我认为,一旦活动失去焦点,就永远不会返回具有noHistory = true的活动的实例. 您在调用ActivityA. 我需要知道以下流程是否正常:
活动A onPause被调用,因为活动B占据了焦点,但几秒钟后,当活动B完成时和onStop&调用了活动A的onDestroy,调用了活动A(相同的实例)onResume.
我在清单中的活动A defition中有noHistory = true.

我认为,一旦活动失去焦点,就永远不会返回具有noHistory = true的活动的实例.

解决方法 您在调用ActivityA.onResume()时描述的行为不正确.我怀疑你的 AndroidManifest.xml文件中有拼写错误.你能发布并向我们展示吗?

onStop()和onDestroy()的时间稍微不那么明确.这是一个有效的示例,但是在用户点击后退按钮之前不会调用onStop()和onDestroy()(但是永远不会调用onResume()).如果我在启动ActivityB之后调用finish(),那么之前它们会在ActivityA上调用.

OUTPUT没有完成():

D/HelloAndroIDActivity(13013): [HelloAndroIDActivity.java:19:onCreate()] onCreate()com.example.hello.HelloAndroIDActivity@4055d2e8D/HelloAndroIDActivity(13013): [HelloAndroIDActivity.java:45:onStart()] onStart()com.example.hello.HelloAndroIDActivity@4055d2e8D/HelloAndroIDActivity(13013): [HelloAndroIDActivity.java:39:onResume()] onResume()com.example.hello.HelloAndroIDActivity@4055d2e8NEXT!D/HelloAndroIDActivity(13013): [HelloAndroIDActivity.java:51:onPause()] onPause()com.example.hello.HelloAndroIDActivity@4055d2e8D/GoodbyeAndroIDActivity(13013): [GoodbyeAndroIDActivity.java:16:onCreate()] onCreate()D/GoodbyeAndroIDActivity(13013): [GoodbyeAndroIDActivity.java:32:onStart()] onStart()D/GoodbyeAndroIDActivity(13013): [GoodbyeAndroIDActivity.java:26:onResume()] onResume()[BACK]D/GoodbyeAndroIDActivity(13013): [GoodbyeAndroIDActivity.java:38:onPause()] onPause()D/HelloAndroIDActivity(13013): [HelloAndroIDActivity.java:57:onStop()] onStop()com.example.hello.HelloAndroIDActivity@4055d2e8D/HelloAndroIDActivity(13013): [HelloAndroIDActivity.java:63:onDestroy()] onDestroy()com.example.hello.HelloAndroIDActivity@4055d2e8D/GoodbyeAndroIDActivity(13013): [GoodbyeAndroIDActivity.java:44:onStop()] onStop()D/GoodbyeAndroIDActivity(13013): [GoodbyeAndroIDActivity.java:50:onDestroy()] onDestroy()

完成输出:

D/HelloAndroIDActivity(13113): [HelloAndroIDActivity.java:19:onCreate()] onCreate()com.example.hello.HelloAndroIDActivity@4051b940D/HelloAndroIDActivity(13113): [HelloAndroIDActivity.java:45:onStart()] onStart()com.example.hello.HelloAndroIDActivity@4051b940D/HelloAndroIDActivity(13113): [HelloAndroIDActivity.java:39:onResume()] onResume()com.example.hello.HelloAndroIDActivity@4051b940NEXT!D/HelloAndroIDActivity(13113): [HelloAndroIDActivity.java:51:onPause()] onPause()com.example.hello.HelloAndroIDActivity@4051b940D/GoodbyeAndroIDActivity(13113): [GoodbyeAndroIDActivity.java:16:onCreate()] onCreate()D/GoodbyeAndroIDActivity(13113): [GoodbyeAndroIDActivity.java:32:onStart()] onStart()D/GoodbyeAndroIDActivity(13113): [GoodbyeAndroIDActivity.java:26:onResume()] onResume()D/HelloAndroIDActivity(13113): [HelloAndroIDActivity.java:57:onStop()] onStop()com.example.hello.HelloAndroIDActivity@4051b940D/HelloAndroIDActivity(13113): [HelloAndroIDActivity.java:63:onDestroy()] onDestroy()com.example.hello.HelloAndroIDActivity@4051b940[BACK]D/GoodbyeAndroIDActivity(13113): [GoodbyeAndroIDActivity.java:38:onPause()] onPause()D/GoodbyeAndroIDActivity(13113): [GoodbyeAndroIDActivity.java:44:onStop()] onStop()D/GoodbyeAndroIDActivity(13113): [GoodbyeAndroIDActivity.java:50:onDestroy()] onDestroy()

HelloAndroIDActivity.java:

public class HelloAndroIDActivity extends Activity {    private static final String TAG = "HelloAndroIDActivity";    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        Log.d(TAG,"onCreate()" + this);        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        button button = (button) findVIEwByID(R.ID.button);        button.setonClickListener(new OnClickListener() {            public voID onClick(VIEw v) {                Intent i = new Intent(HelloAndroIDActivity.this,GoodbyeAndroIDActivity.class);                startActivity(i);                // Uncomment this:                 finish();            }        });    }    @OverrIDe    public voID onResume() {        super.onResume();        Log.d(TAG,"onResume()" + this);    }    @OverrIDe    public voID onStart() {        super.onStart();        Log.d(TAG,"onStart()" + this);    }    @OverrIDe    public voID onPause() {        super.onPause();        Log.d(TAG,"onPause()" + this);    }    @OverrIDe    public voID onStop() {        super.onStop();        Log.d(TAG,"onStop()" + this);    }    @OverrIDe    public voID onDestroy() {        super.onStop();        Log.d(TAG,"onDestroy()" + this);    }}

GoodbyeAndroIDActivity.java:

public class GoodbyeAndroIDActivity extends Activity {    private static final String TAG = "GoodbyeAndroIDActivity";    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        Log.d(TAG,"onCreate()");        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.goodbye);    }    @OverrIDe    public voID onResume() {        super.onResume();        Log.d(TAG,"onResume()");    }    @OverrIDe    public voID onStart() {        super.onStart();        Log.d(TAG,"onStart()");    }    @OverrIDe    public voID onPause() {        super.onPause();        Log.d(TAG,"onPause()");    }    @OverrIDe    public voID onStop() {        super.onStop();        Log.d(TAG,"onStop()");    }    @OverrIDe    public voID onDestroy() {        super.onStop();        Log.d(TAG,"onDestroy()");    }}

main.xml中

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"        androID:orIEntation="vertical"        androID:layout_wIDth="fill_parent"        androID:layout_height="fill_parent"        >    <TextVIEw          androID:ID="@+ID/hello_text"        androID:layout_wIDth="fill_parent"         androID:layout_height="wrap_content"         androID:text="@string/hello"        />        <button          androID:ID="@+ID/button"        androID:layout_wIDth="fill_parent"         androID:layout_height="wrap_content"         androID:text="NEXT!"        />    </linearLayout>

goodbye.xml:

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:orIEntation="vertical"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    ><TextVIEw      androID:ID="@+ID/hello_text"    androID:layout_wIDth="fill_parent"     androID:layout_height="wrap_content"     androID:text="Goodbye!!!"    /></linearLayout>

AndroIDManifest.xml中:

<?xml version="1.0" enCoding="utf-8"?>    <manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"          package="com.example.hello"          androID:versionCode="1"          androID:versionname="1.0">        <uses-sdk androID:minSdkVersion="10" androID:targetSdkVersion="10"/>        <application androID:icon="@drawable/icon" androID:label="@string/app_name">            <activity androID:name="com.example.hello.HelloAndroIDActivity"                      androID:label="@string/app_name"   androID:noHistory="true">                <intent-filter>                    <action androID:name="androID.intent.action.MAIN" />                    <category androID:name="androID.intent.category.LAUNCHER" />                </intent-filter>            </activity>            <activity androID:name="com.example.hello.GoodbyeAndroIDActivity">            </activity>        </application>    </manifest>
总结

以上是内存溢出为你收集整理的android – 返回活动,即使它有noHistory = true全部内容,希望文章能够帮你解决android – 返回活动,即使它有noHistory = true所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存