因为我有异常运行
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
在libgdx的render()中,
我有一个想法,首先在Android活动中运行蓝牙设置
然后关闭活动并初始化libgdx。
以下代码崩溃:
public class MyActivity extends AndroidApplication {
public void onCreate (android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
Intent myIntent = new Intent(MyActivity.this, StartActivity.class);
startActivity(myIntent);
initialize(new MyGame(), false); //run libgdx
}
}
StartActivity如下(稍后它将是游戏标题和蓝牙设置):
public class StartActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView text = new TextView(this);
text.setText("Hello World, Android");
setContentView(text);
try {
Thread.sleep(7000);
}
catch (InterruptedException e) {};
finish();
return;
}
}
没有崩溃消息,但应用程序保持黑屏(甚至没有“你好”消息) 如果我添加以下内容:
Intent i = new Intent(this, MyActivity.class);
startActivity(i);
logcat中存在“E / AndroidRuntime(612):ERROR:thread attach failed”。 但正如我所说的没有崩溃信息。
这里出了点问题...... 我不知道如何正确编写这样的代码。 感谢。
答案 0 :(得分:2)
是的,你可以在运行libgdx之前启动一个活动。不要先启动libgdx的东西。启动蓝牙设置,然后在准备好时调用Intent
开始实际游戏。
像这样:
public class BluetoothActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bluetoothsettings);
Button startGame = (Button)findViewById(R.id.btnStartGame);
// handle set start click
startGame.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(BluetoothActivity.this, GameActivity.class);
BluetoothActivity.this.startActivity(intent);
}
});
}
}
然后你的游戏活动就像你上面那样延伸AndroidApplication
的正常活动。
当然要确保您的AndroidManifest.xml
先启动BluetoothActivity
,而不是libgdx。
<activity android:name=".BluetoothActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 1 :(得分:0)
无论如何这都不会起作用,但我认为由于StartActivity未在Manifest中声明,它可能会崩溃。