活动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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)