自定义一个dialog,点击button后通过service启动dialog并于4秒后显示,废话不多说,代码奉上:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button=(Button)findViewById(R.id.button1);
final Intent intent=new Intent();
intent.setAction("com.example.servicedialog.ServiceDialog");
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
startService(intent);
}
});
}
public class MyDialog extends Dialog{
Context context;
public MyDialog(Context context) {
super(context);
this.context=context;
// TODO Auto-generated constructor stub
}
public MyDialog(Context context,int theme){
super(context,theme);
this.context=context;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.dialog);
}
}
public class ServiceDialog extends Service{
Handler handler=new Handler();
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(final Intent intent, int flags, int startId){
final Dialog dialog = new MyDialog(ServiceDialog.this,R.style.MyDialog);
dialog.getWindow().setType((WindowManager.LayoutParams.TYPE_SYSTEM_ALERT));
new Thread(){
public void run() {
SystemClock.sleep(4000);
handler.post(new Runnable() {
@Override
public void run() {
dialog.show();
}
});
}
}.start();
return super.onStartCommand(intent, flags, startId);
}
}