相关疑难解决方法(0)

退出申请不赞成?

继续我学习Android的尝试,我只是阅读以下内容:

问题:用户是否可以选择终止应用程序,除非我们使用菜单选项来杀死它?如果不存在这样的选项,用户如何终止该应用程序?

答案:(Romain Guy):用户没有,系统会自动处理.这就是活动生命周期(特别是onPause/onStop/onDestroy)的用途.无论你做什么,都不要放"退出"或"退出"应用程序按钮.它与Android的应用程序模型无关.这也与核心应用程序的工作方式相反.

呵呵,我在Android世界中采取的每一步都会遇到某种问题=(

显然,你无法在Android中退出应用程序(但Android系统可以很好地完全破坏你的应用程序).那是怎么回事?我开始认为编写一个充当"普通应用程序"的应用程序是不可能的 - 用户可以在他/她决定这样做时退出应用程序.这不应该依赖操作系统来做.

我尝试创建的应用程序不是Android Market的应用程序.它不是一般公众"广泛使用"的应用程序,它是一个将用于非常狭窄的业务领域的商业应用程序.

我实际上真的很期待为Android平台开发,因为它解决了Windows Mobile和.NET中存在的许多问题.然而,上周对我来说有点懈怠...我希望我不必放弃Android,但它现在看起来不太好=(

有没有办法让我真的退出申请?

android

1131
推荐指数
29
解决办法
27万
查看次数

如何从最近的应用程序列表中删除应用程

我想Android不会让人们这样做,因为他们认为他们有完美的任务/应用程序处理.但是,在我的情况下,我真的需要这样做.

我有一个活动A作为我的申请的入口点.在该活动中,它读取偏好并决定开始哪个活动,比如B或C.之后,它完成自己.因此,活动A永远不会出现在用户身上.

我的应用程序将东西存储在SD卡上,并不断读取它.因此,当卸载SD卡时,我需要向用户显示sdcard不可用的消息,而不是打开B或C.我在A中设置一个检查以在sdcard不可用时显示该消息.显示该消息时,A不会尝试启动B或C.

如果用户只从应用程序启动器输入我的应用程序,事情就会完美.但是,我发现用户也可以通过长按home进入我的应用程序并从最近的应用程序列表中选择它,如果他最近打开它.当用户这样做时,它跳过A并直接转到B或C.我没有检查它们,因此在我尝试访问sdcard时抛出异常,并弹出强制关闭对话框.

我可以简单地将支票移到B和C来解决这个问题.但是在未来,从A开始的活动数量将会增加.如果有6个,我需要将此支票复制到6个地方.毋庸置疑,这看起来非常难看,而且是一场维护噩梦.

因此,最好的解决方案应该是在卸载SD卡时从最近的应用程序列表中删除我的应用程序.但是,我找不到如何做到这一点.即使终止进程或使用ActivityManager.restartPackage,它仍会出现在列表中.谁能告诉我如何从列表中删除它?

android

55
推荐指数
4
解决办法
5万
查看次数

如何在android中杀死当前正在运行的任务

我正在尝试在android中构建任务杀手类型的应用程序.我可以使用ActivityManager显示当前正在运行的任务列表,但在杀死任务时遇到问题.

这是我正在做的获取当前正在运行的任务的列表:

ActivityManager am = (ActivityManager) context.
            getSystemService(Activity.ACTIVITY_SERVICE);


List<RunningTaskInfo> a=am.getRunningTasks(Integer.MAX_VALUE);

PackageManager pack=this.getPackageManager();

for(int i=0;i<a.size();i++){

            String packageName = a.get(i).topActivity.getPackageName();

            Drawable d=null;
            String appName="";

            try {
                d=pack.getApplicationIcon(packageName);

                appName=(String)     pack.getApplicationLabel(pack.getApplicationInfo(packageName,PackageManager.GET_META_DATA));

            } catch (NameNotFoundException e) {
                e.printStackTrace();
            }

                    packName.add(packageName);  //arraylist of package name 
                apps.add(appName);          // arraylist of app name
                icons.add(d);               //arraylist of icons
        }
Run Code Online (Sandbox Code Playgroud)

它对我有用但现在我正在尝试使用killBackgroundProcesses杀死任务:

am.killBackgroundProcesses(package name);
Run Code Online (Sandbox Code Playgroud)

那没起效 .此外,killBackgroundProcesses方法在API级别2.2中可用,那么我如何在以前的API级别(如1.6等)中执行相同的任务.

有没有其他方法来显示当前活动的应用程序并杀死它们.

请帮忙 .

非常感谢.

android

16
推荐指数
3
解决办法
3万
查看次数

杀掉Android上的另一个应用程序?

我试图杀死我的另一个应用程序.但是这段代码无法杀死我的另一个应用程序.我知道杀死另一个应用程序是一个坏主意.但我有学习目的,我试图杀人.我的代码部分:

Button runningApp = (Button) findViewById(R.id.runningApp);
runningApp.setOnClickListener(new View.OnClickListener()
{
    @Override
    public void onClick(View v)
    {
        String nameOfProcess = "com.example.filepath";
        ActivityManager  manager = (ActivityManager)ApplicationActivity.this.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningAppProcessInfo> listOfProcesses = manager.getRunningAppProcesses();
        for (ActivityManager.RunningAppProcessInfo process : listOfProcesses)
        {
            if (process.processName.contains(nameOfProcess))
            {
                Log.e("Proccess" , process.processName + " : " + process.pid);
                android.os.Process.killProcess(process.pid);
                android.os.Process.sendSignal(process.pid, android.os.Process.SIGNAL_KILL);
                manager.killBackgroundProcesses(process.processName);
                break;
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我添加了权限,它们是:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.GET_TASKS" />
Run Code Online (Sandbox Code Playgroud)

每次我看到LogCat时,特定的应用程序都在后台运行.我哪里弄错了?

android

14
推荐指数
1
解决办法
3万
查看次数

如何列出最近/正在运行的应用程序

按住手机上的主屏幕按钮会弹出一个弹出窗口,显示最近的应用程序.有谁知道如何通过代码执行相同的操作?我需要能够在列表视图中选择一个.

java android

3
推荐指数
1
解决办法
3086
查看次数

以编程方式清除所有近期任务

我试图通过一个程序删除所有最近的任务.在发布问题之前,我用Google搜索了,但没有运气.

我尝试使用ActivityManager.killBackgroundProcess(pckagename),但它也没有从最近的任务列表中删除任务.

我也试过Android的链接 ,如何清除最近的任务列表哪个可以从大多数手机的主页按钮获取?反思是一种可能的方式吗?

我总是得到以下异常

java.lang.SecurityException:Permission Denial:removeTask()from pid = 23297,uid = 10051需要android.permission.REMOVE_TASKS

即使我已经android.permission.REMOVE_TASKS在清单中指定了权限.

我们如何以编程方式清除最近的任务列表,以便用户在最近的任务列表中看不到最近的任务?

android

3
推荐指数
2
解决办法
8822
查看次数

标签 统计

android ×6

java ×1