Android service里面启动activity和alertdialog .

本文介绍了在Android应用中启动Activity及AlertDialog的具体实现方式,并给出了相应的源码示例。同时,文中还提到了设置对话框类型及权限的相关配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  1. 启动activity源码:(记得要加上Intent.FLAG_ACTIVITY_NEW_TASK)

    1. Intent intent = new Intent();
    2. intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    3. intent.setClass(getApplicationContext(),FileBrowserActivity.class);
    4. startActivity(intent);

    启动alertDialog源码:

    1. AlertDialog.Builder builder = new AlertDialog.Builder(this);
    2. builder.setMessage("是否接受文件?")
    3. .setPositiveButton("是", new DialogInterface.OnClickListener() {
    4. @Override
    5. publicvoid onClick(DialogInterface dialog, int which) {

    6. }
    7. }).setNegativeButton("否", new OnClickListener() {
    8. @Override
    9. publicvoid onClick(DialogInterface dialog, int which) {
    10. }
    11. });
    12. AlertDialog ad = builder.create();
    13. // ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG); //系统中关机对话框就是这个属性
    14. ad.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    15. ad.setCanceledOnTouchOutside(false); //点击外面区域不会让dialog消失
    16. ad.show();
    还要加上权限 
    1. <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

01-01 00:16:20.586 20968 20968 E AndroidRuntime: FATAL EXCEPTION: main 01-01 00:16:20.586 20968 20968 E AndroidRuntime: Process: com.adayo.service.atsmode, PID: 20968 01-01 00:16:20.586 20968 20968 E AndroidRuntime: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.view.ViewRootImpl.setView(ViewRootImpl.java:1071) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:409) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:109) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.app.Dialog.show(Dialog.java:340) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.app.AlertDialog$Builder.show(AlertDialog.java:1131) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.widget.VideoView$5.onError(VideoView.java:615) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:3446) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.os.Looper.loop(Looper.java:223) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7687) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 01-01 00:16:20.586 20968 20968 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 01-01 00:16:21.454 20968 20968 I Process : Sending signal. PID: 20968 SIG: 9
最新发布
08-06
08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: FATAL EXCEPTION: main 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: Process: com.android.provision, PID: 2483 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.view.ViewRootImpl.setView(ViewRootImpl.java:2101) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:546) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:402) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.app.Dialog.show(Dialog.java:366) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.app.AlertDialog$Builder.show(AlertDialog.java:1131) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.widget.VideoView$5.onError(VideoView.java:615) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:3640) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.os.Looper.loopOnce(Looper.java:249) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.os.Looper.loop(Looper.java:337) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:9562) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:648) 08-04 10:45:35.399 1000 2483 2483 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005) 08-04 10:45:35.402 1000 2483 2483 D OOMEventManagerFK: checkEventAndDumpForJE: 0
08-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值