2012-03-14 3 views
0

У меня есть класс Runnable, можно ли вызвать этот runnable класс внутри действия?Вызов класса Runnable внутри Activity

Вот мой класс: ошибка

public class TstClass implements Runnable { 

static boolean m_bret = false; 
static String m_szconfig = "-i"; 
private int n_stat; 
public native String unimplementedStringFromJNI(); 


static { 
    try { 
     System.out.println ("[AdDBCache] Module load try ffmpeg : " + System.getProperty("java.library.path")); 
     System.loadLibrary("tstjni"); 
     System.out.println ("[AdDBCache] Module load success"); 

    } catch (Exception e) { 
     System.out.println ("[AdDBCache] Module load err : " + System.getProperty("java.library.path")); 
} 
} 

private static synchronized final native int mod_run (String name, String sztoken); 

public void set_config (String sz_config) { 
    m_szconfig = sz_config; 
} 


public void run_core (String sz_file, String sz_token) { 
    m_bret = false; 
    n_stat = mod_run (m_szconfig, sz_token); 
    m_bret = true; 
} 


public void run() { 
    run_core ("", ""); 
} 

} 

Logcat:

03-14 17:53:11.405: E/AndroidRuntime(2605): FATAL EXCEPTION: Thread-8 
03-14 17:53:11.405: E/AndroidRuntime(2605): java.lang.UnsatisfiedLinkError: mod_run 
03-14 17:53:11.405: E/AndroidRuntime(2605):  at com.parsapp.actionmovie.ffmpeg.mod_run(Native Method) 
03-14 17:53:11.405: E/AndroidRuntime(2605):  at com.parsapp.actionmovie.ffmpeg.run_core(ffmpeg.java:31) 
03-14 17:53:11.405: E/AndroidRuntime(2605):  at com.parsapp.actionmovie.ffmpeg.run(ffmpeg.java:37) 
03-14 17:53:11.405: E/AndroidRuntime(2605):  at java.lang.Thread.run(Thread.java:1096) 

ответ

2

Вы пробовали следующее? У вас возникли проблемы?

TstClass tst = new TstClass(); 
new Thread(tst).start(); 

Документация:. http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Thread.html

+0

Спасибо, но когда я использую Thread, я получил ошибку, в которой говорится, что Thread не защищен для типа активности. – iSun

+0

@iSun Извините, что я забыл ключевое слово 'new', прежде чем вызывать класс' Thread'. Я обновил свой ответ, пожалуйста, взгляните. –

+0

Спасибо, но когда я использую это, я получил силовую ошибку. – iSun

0
new TstClass().run(); 

должна быть работа. Ты пробовал?

+0

Она должна быть новая тема (новая TstClass()) начать(); –

+0

почему и что такое downvote? – Blackbelt

+0

и почему это должно быть, как вы говорите? – Blackbelt