0

他の2つのクラスを使用するActivityクラスを取得しました。1つはImageViewを拡張し、もう1つはBaseAdapterを次のように拡張します。 そのようです

私のImageViewクラスは、呼び出されたとき、および初めて起動したときに、必要な処理を実行します。これは、ホームボタンを押してから再開した場合にも当てはまります。しかし、どういうわけか、スタンバイモードから再開すると機能しません。(画面を暗くする電話のボタンを押す)電話のロックを解除すると、クラッシュします。nullPointerExceptionでクラッシュし、BaseAdapterで定義されたGridViewでgetChildAt()を呼び出そうとすると読み取れる内容からクラッシュします。

スマートフォンをスタンバイモードに設定したときと同じように、ホームボタンを押したときと同じようにアプリを動作させる方法はありますか?編集:

public MyCustomDefinedImageViewClass (Context context) {
super (context);
mContext = context;
    MyCustomDefinedImageViewClass someThing =(MyCustomDefinedImageViewClass)gridViewIGetTheChildFrom.getChildAt(some int);

これが私のクラッシュの原因です:

 11-19 22:00:48.200: E/AndroidRuntime(6252):     at my.package.name.MyCustomDefinedImageViewClass.<init>(MyCustomDefinedImageViewClass.java:57)

コードがあまり役に立っていないと思うので、そもそも投稿しませんでした。

4

1 に答える 1

0

追加してみてください

android:configChanges="keyboardHidden|orientation|screenLayout"

マニフェストファイルに。クラッシュは、ロック画面が表示されたときにアクティビティが再起動した結果です。ロック画面は縦向きを強制し、それを処理する準備ができていない場合、アプリがクラッシュする可能性があります。

それでもうまくいかない場合は、onRetainNonConfigurationInstance()をオーバーライドしてみてください。

オブジェクトを保持する方法については、この投稿を参照してください:AndroidのonRetainNonConfigurationInstance()に多くのオブジェクトを保存する方法

また、デバイスがスリープ状態になったときに何が起こるかを理解するために、このandroid-groupスレッドを読んでください。

于 2012-11-21T15:20:11.780 に答える