例如,下面的示例代码演示
package com.sample.sampletest;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity {
private static Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handler=new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
switch (msg.what)
{
case 1: indirectShowDialog(); break;
default:break;
}
}
};
}
public void showExitConfirm()
{
Message tempMsg=new Message();
tempMsg.what=1;
handler.sendMessage(tempMsg);
}
void indirectShowDialog()
{
AlertDialog dialog=new AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("确定要退出吗")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
}})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.create();
dialog.show();
}
}
不能直接调用。必须通过一个handler间接调用,我没在官网上找到原因,我在一个台湾程序员的博客上看到说是因为unity3d生成的安卓主activity由于安全原因,屏蔽掉AlertDialog,没关系,我们就可以间接调用
版权声明:本文博主原创文章,博客,未经同意不得转载。