在Android平臺上使用QuickJS作為JavaScript引擎時,可以通過以下步驟實現定時器功能:
setInterval
或setTimeout
函數來設置定時器。以下是一個簡單的示例,展示了如何在Android中使用QuickJS實現定時器功能:
Java代碼:
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import com.eclipsesource.v8.V8;
import com.eclipsesource.v8.V8Array;
import com.eclipsesource.v8.V8Object;
import com.eclipsesource.v8.V8Script;
public class MainActivity extends AppCompatActivity {
private V8Runtime v8Runtime;
private Handler handler = new Handler(Looper.getMainLooper());
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化QuickJS引擎
V8 runtime = V8.createV8Runtime(getApplicationContext());
v8Runtime = runtime;
// 加載JavaScript代碼
String script = "function timerCallback() { console.log('Timer triggered!'); } setInterval(timerCallback, 1000);";
V8Script v8Script = v8Runtime.executeScript(script);
// 設置一個按鈕來停止定時器
Button stopButton = findViewById(R.id.stop_button);
stopButton.setOnClickListener(v -> {
v8Runtime.executeScript("clearInterval(window.timerId);", v8Script);
});
}
@Override
protected void onDestroy() {
super.onDestroy();
// 釋放QuickJS資源
if (v8Runtime != null) {
v8Runtime.release();
v8Runtime = null;
}
}
}
activity_main.xml布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<Button
android:id="@+id/start_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Timer"/>
<Button
android:id="@+id/stop_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Stop Timer"/>
</LinearLayout>
在這個示例中,我們創建了一個QuickJS環境,并加載了一個包含定時器邏輯的JavaScript腳本。我們還添加了一個按鈕來啟動和停止定時器。當點擊“Start Timer”按鈕時,會設置一個每秒觸發一次的定時器,而點擊“Stop Timer”按鈕則會清除該定時器。