私のアプリは、から選択したアイテムに詳細を提供するためにActivity
2つを使用するを開始します。Fragments
List
起動時に、アプリは外部ストレージ上のDBを読み取ります。SQLite
さらに、外部ストレージ上のxmlファイルからデータを収集します。
それはすべて素晴らしくスムーズに機能します:)
しかし、抽象クラスを使用してコードを詳細に再利用しているためFragments
、アプリは奇妙な動作を開始します。詳細が開いているか非表示になっているときにデバイスをUSBから接続または切断すると、アプリがクラッシュします。Fragment
「申し訳ありませんが、アプリケーションxyzが予期せず停止しました。...もう一度やり直してください。」
細部につながっていると思いますFragments
。デバイスのプラグを抜くとデバッガーやロギングが機能しないため、確かにわかりません:D
しかし、他のすべての機能は正常に機能します。
デバイスのプラグを抜くと、アプリはどうなりますか?多分私はそこに介入することができます...
AbstractDetailFragment:
public AbstractWISDetailFragment(ChooseData cData) {
this.data = cData;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setDetail();
view.setClickable(true);
}
protected abstract void setDetail();
ImplFragment:
public ActorDetailFragment(ChooseData data) {
super(data);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.akteur_detail, container, false);
return view;
}
@Override
protected void setDetail() {
// something
...
}
編集:
リストアイテムをタッチして詳細フラグメントをインスタンス化した瞬間からのlogcatエントリは次のとおりです。
I/InputReader( 305): dispatchTouch::touch event's action is 0, pending(waiting
finished signal)=0
I/InputDispatcher( 305): Delivering touch to current input target: action: 0, c
hannel '41a8fc30 ...ChooseActivity (server)'
I/InputDispatcher( 305): Delivering touch to current input target: action: 0, c
hannel 'TouchIntercepter (server)'
I/InputReader( 305): dispatchTouch::touch event's action is 1, pending(waiting
finished signal)=0
I/InputDispatcher( 305): Delivering touch to current input target: action: 1, c
hannel '41a8fc30 ...ChooseActivity (server)'
I/InputDispatcher( 305): Delivering touch to current input target: action: 1, c
hannel 'TouchIntercepter (server)'
D/WIS_ActorList( 2686): new actor item data set (process reseted)
D/WIS_ChooseActivity( 2686): ProcessButton enabled
D/WIS_ChooseActivity( 2686): ProcessStartButton disabled
D/WIS_ChooseActivity( 2686): ProcessStartButton disabled
D/HierarchicalStateMachine( 305): handleMessage: E msg.what=65619
D/HierarchicalStateMachine( 305): processMsg: ConnectedState
D/WifiStateMachine( 305): ConnectedState{ what=65619 when=-3ms arg1=4 }
D/HierarchicalStateMachine( 305): handleMessage: X
D/HierarchicalStateMachine( 305): handleMessage: E msg.what=65619
D/HierarchicalStateMachine( 305): processMsg: ConnectedState
D/WifiStateMachine( 305): ConnectedState{ what=65619 when=-3ms arg1=4 }
D/HierarchicalStateMachine( 305): handleMessage: X
D/dalvikvm( 2305): GC_EXPLICIT freed 329K, 9% free 6875K/7495K, paused 7ms+2ms
W/PowerManagerService( 305): Timer 0x3->0x3|0x1
D/HierarchicalStateMachine( 305): handleMessage: E msg.what=65619
D/HierarchicalStateMachine( 305): processMsg: ConnectedState
D/WifiStateMachine( 305): ConnectedState{ what=65619 when=-4ms arg1=4 }
D/HierarchicalStateMachine( 305): handleMessage: X
D/HierarchicalStateMachine( 305): handleMessage: E msg.what=65619
D/HierarchicalStateMachine( 305): processMsg: ConnectedState
D/WifiStateMachine( 305): ConnectedState{ what=65619 when=-4ms arg1=4 }
D/HierarchicalStateMachine( 305): handleMessage: X
D/HierarchicalStateMachine( 305): handleMessage: E msg.what=65619
D/HierarchicalStateMachine( 305): processMsg: ConnectedState
D/WifiStateMachine( 305): ConnectedState{ what=65619 when=-4ms arg1=4 }
D/HierarchicalStateMachine( 305): handleMessage: X
デバイスのプラグを抜くと、logcatは自殺します。