下面的代码示例在android平台下使用线程类threads.h
MyThread.h
#ifndef _MYTHREAD_H #define _MYTHREAD_H #include <utils/threads.h> namespace android { class MyThread: public Thread { public: MyThread(); //virtual ~MyThread(); //如果返回true,循环调用此函数,返回false下一次不会再调用此函数 virtual bool threadLoop(); }; } #endif
MyThread.cpp
#define LOG_TAG "MyThread" #include <utils/Log.h> #include "MyThread.h" namespace android { MyThread::MyThread() : Thread(false) { LOGD("MyThread"); } //MyThread::~MyThread() { // LOGD("~MyThread"); //} bool MyThread::threadLoop() { LOGD("threadLoop"); return true; } }
main调用
Main.cpp
扫描二维码关注公众号,回复:
753702 查看本文章
#define LOG_TAG "Main" #include <utils/Log.h> #include <utils/threads.h> #include "MyThread.h" using namespace android; int main() { sp<MyThread> thread = new MyThread;//此处一定要这么写 thread->run("MyThread", PRIORITY_URGENT_DISPLAY); while(1); LOGD("main end"); return 0; }
最后Android.mk
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES := MyThread.cpp \ Main.cpp \ LOCAL_SHARED_LIBRARIES :=libandroid_runtime \ libcutils \ libutils LOCAL_MODULE := android_thread LOCAL_MODULE_TAGS := eng LOCAL_PRELINK_MODULE := false #include $(BUILD_SHARED_LIBRARY) include $(BUILD_EXECUTABLE)