2016-12-06 3 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. окно $ Callback.onProvideKeyboardShortcuts, ссылки из метода android.support.v7.view.WindowCallbackWrapper.onProvideKeyboardShortcuts

где моя ошибка

ответ

0

Если QRActivity расширяет Activity, то вы абсолютно положительно не можете сделать это:

o = new QRActivity(); 

Только Android структуры может создать экземпляры Activity. Ваша архитектура испорчена.

+0

Спасибо, Дэвид, я сделал это, но у меня всегда был крах. – Nick

+0

Опубликуйте свой измененный код и stacktrace из 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();

это ошибка:
ThreadId = 1: поток, выходящий с неперехваченным исключением (группа = 0x4168bc80) // реального класс приложения является недействительным. W/InstantRun: файлы с мгновенным запуском dex не добавлены в classpath

Смежные вопросы