代码之家  ›  专栏  ›  技术社区  ›  Laimoncijus

将数据从线程传递到活动

  •  2
  • Laimoncijus  · 技术社区  · 16 年前

    Thread Activity (创建了线程)。

    所以我做的和上面描述的一样 Android documentation

    public class MyActivity extends Activity {
    
        [ . . . ]
        // Need handler for callbacks to the UI thread
        final Handler mHandler = new Handler();
    
        // Create runnable for posting
        final Runnable mUpdateResults = new Runnable() {
            public void run() {
                updateResultsInUi();
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            [ . . . ]
        }
    
        protected void startLongRunningOperation() {
    
            // Fire off a thread to do some work that we shouldn't do directly in the UI thread
            Thread t = new Thread() {
                public void run() {
                    mResults = doSomethingExpensive();
                    mHandler.post(mUpdateResults);
                }
            };
            t.start();
        }
    
        private void updateResultsInUi() {
    
            // Back in the UI thread -- update our UI elements based on the data in mResults
            [ . . . ]
        }
    }
    

    只有一件事我在这里错过-在哪里和如何定义 mResults 所以我可以从这两个地方都查到 活动 ,也可以根据需要进行修改?如果我把它定义为 final MyActivity 线程 -如示例所示。。。

    1 回复  |  直到 16 年前
        1
  •  2
  •   Ben L.    16 年前

    protected Object mResults = null;
    

    (使用受保护的,因为 it's faster