2016-12-06 9 views
0

私はこの状況に陥っています: 数秒後に活動から外に出たいが、その後はシステムがクラッシュする。私はこれらの行を挿入 :アクティビティから外出するとシステムがクラッシュする

static QRActivity o; 

    protected void onCreate(Bundle savedInstanceState) { 

    /////other codes 

    o =new QRActivity(); 

    public static void myMethod() 
     { 
      o.doStuff(); 
     } 

     private void doStuff() 
     { 
      Timer t = new Timer(); 
      t.schedule(new TimerTask() { 

       @Override 
       public void run() { 
        // TODO Auto-generated method stub 
        Intent i = new Intent(QRActivity.this,MainActivity.class); 
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        startActivity(i); 

       } 
      }, 5000); 
     } 

    in an other class 
    QRActivity.myMethod(); 

それは働いたが秒後にされたが、クラッシュに行く設定と 実際のアプリケーションクラスを言うなしインスタント実行DEXファイルは は、メソッドのandroid.viewを見つけることができませんでしたクラスパスに追加しない nullです。 QRActivityはを拡張

答えて

0

場合はウィンドウ$ Callback.onProvideKeyboardShortcutsは、メソッドのandroid.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcutsから参照

はどこ私のミスです

o = new QRActivity(); 

だけのAndroidフレームワークはActivityのインスタンスを作成することができます:10、あなたは絶対に積極的にこれを実行しない場合があります。あなたのアーキテクチャに欠陥があります。

+0

ありがとうDavid私はそれを行いましたが、私はいつもクラッシュしています。 – Nick

+0

変更したコードとスタックトレースをlogcatからポストする –

0
class MyClass extends Activity { 

    static MyClass o; 

    public static void myMethod() 
    { 
     o.doStuff(); 
    } 

    private void doStuff() 
    { 
     Timer t = new Timer(); 
     t.schedule(new TimerTask() { 

      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       Intent i = new Intent(MyClass.this,MainActivity.class); 
       i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       i.putExtra("EXIT", true); 
       startActivity(i); 

      } 
     }, 5000); 
    } 

MyClass.MyMethodなど()とリコール。

このエラー:
スレッドID = 1:スレッドが捕捉されない例外で終了(グループ= 0x4168bc80) //実際のアプリケーションクラスがnullです。 W/InstantRun:即時実行dexファイルがクラスパスに追加されていません