オンライン ビデオを再生する Android アプリを実装していますが、エラーが発生します。簡単にするために、ここでサンプルアプリを作成しました。MainActivity と SecondActivity の 2 つのアクティビティがあります。
MainActivity
public class MainActivity extends Activity {
public static String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(TAG, "onCreate");
setContentView(R.layout.activity_main);
((Button)findViewById(R.id.btn)).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
startActivity(intent);
}
});
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.e(TAG, "onStart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.e(TAG, "onResume");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.e(TAG, "onStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.e(TAG, "onDestroy");
}
}
SecondActivity
public class SecondActivity extends Activity {
public static String TAG = "SecondActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
Log.e(TAG, "onStart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
Log.e(TAG, "onResume");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
Log.e(TAG, "onStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.e(TAG, "onDestroy");
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
Log.e(TAG, "onConfigurationChanged");
}
}
AndroidManifiest.xml
<activity
android:name="com.example.androidtest.MainActivity"
android:screenOrientation="portrait"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.androidtest.SecondActivity"
android:label="@string/title_activity_second"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait">
</activity>
でMainActivity
開始するボタンがありますSecondActivity
。私のシナリオでは、デバイスを横向きモードにし、ボタンをクリックして開始しますSecondActivity
(SecondActivity
横向きモードに自動回転します)。次に、戻るボタンをすぐに押して戻りますMainActivity
。しかし、MainActivity
は破壊されます。これが私のログです:
12-11 22:22:20.940: E/MainActivity(400): onCreate
12-11 22:22:20.960: E/MainActivity(400): onStart
12-11 22:22:20.960: E/MainActivity(400): onResume
12-11 22:22:24.524: E/SecondActivity(400): onStart
12-11 22:22:24.524: E/SecondActivity(400): onResume
12-11 22:22:24.544: E/SecondActivity(400): onConfigurationChanged
12-11 22:22:24.634: E/MainActivity(400): onStop
12-11 22:22:24.634: E/MainActivity(400): onDestroy
12-11 22:22:34.133: E/SecondActivity(400): onStop
12-11 22:22:34.133: E/SecondActivity(400): onDestroy
はMainActivity
破棄され、現在のアクティビティはSecondActivity
です。もう一度 Back を押すと、SeconActivity
が破棄されます。MainActivity
が破壊された理由、またはこれが Android OS のエラーである理由を誰でも説明できます。前もって感謝します。
P/S : この場合、デバイスを横向きにして、ボタンをクリックして SecondActivity を開始し、すぐに [戻る] を押します。
その他のケースは問題なく動作します。