小编Dav*_*ser的帖子

Android任务和进程,SingleTask和SingleInstance

我已阅读Google Android Developer页面,但任务的概念(http://developer.android.com/guide/components/tasks-and-back-stack.html)确实让我感到困惑.

在我读到SingleTask和SingleInstance之后,我变得更加困惑.

我想通过一些例子提出一些问题,希望我能从这些问题中得到更好的理解:

假设我有2个应用程序A和B,A有x,y,z活动; B有1,2,3个活动:

假设他们的启动模式是标准(不使用任何意图标志).而x是app A的主要活动; 1是应用程序B的主要活动.

1)启动应用程序A,然后x-> y - > 1,按主页按钮,再次启动应用程序A,我们将看到活动y或1?

2)启动app A然后x - > 1 - > y - > 2 - > z - > 3,按home键,启动app A,它将包含所有活动(x - > 1 - > y - > 2 - > z - > 3),还是只包含x - > y - > z?如果我们现在推出应用B怎么样?应用B包含哪些活动?

现在让我们说活动1,2,3是SingleTask; x,y,z仍为标准:

3)启动应用程序A,然后x - > y - > 1 - > 2,按主页按钮,启动应用程序A,它将包含x - > y或它包含x - > y - > 1 - > …

android launchmode android-activity

8
推荐指数
1
解决办法
4630
查看次数

允许拒绝猴子整合

我尝试将猴子集成到我的APP中,而以下错误总是会出现:

10-13 09:16:24.682: INFO/System.out(274): :Monkey: seed=0 count=500...
10-13 09:16:24.682: INFO/System.out(274): :Monkey: seed=0 count=500...
10-13 09:16:24.704: INFO/System.out(274): :AllowPackage: org.example.tabdemo...
10-13 09:16:24.712: INFO/System.out(274): AllowPackage: org.example.tabdemo...
10-13 09:16:24.723: INFO/System.out(274): :IncludeCategory:   android.intent.category.LAUNCHER...
10-13 09:16:24.762: INFO/System.out(274): IncludeCategory: android.intent.category.LAUNCHER...
10-13 09:16:24.773: INFO/System.out(274): :IncludeCategory: android.intent.category.MONKEYER...
10-13 09:16:24.783: INFO/System.out(274): IncludeCategory: android.intent.category.MONKEYER...
10-13 09:16:24.872: WARN/ActivityManager(58): Permission Denial:   setActivityController() from pid=290, uid=10036 requires android.permission.SET_ACTIVITY_WATCHER
10-13 09:16:24.903: DEBUG/AndroidRuntime(290): Shutting down VM
10-13 09:16:24.912: WARN/dalvikvm(290): threadid=1: thread exiting with uncaught 

exception (group=0x4001d850)
10-13 09:16:25.112: ERROR/AndroidRuntime(290): *** FATAL EXCEPTION IN SYSTEM PROCESS: main …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-monkey

7
推荐指数
0
解决办法
802
查看次数

安装apk"打开"和"完成"按钮显示后,单击打开按钮,它不会添加类别作为启动器

Android问题:此问题仅在安装后第一次出现并单击打开按钮,启动带有启动器图标的应用程序后,将永远不会出现问题.

  • 重现问题的步骤.

    1. 安装任何.apk文件
    2. 安装完成后,您将获得两个按钮"打开"和"完成".
    3. 点击打开按钮打开/启动应用程序.
    4. 现在导航到您的应用程序并转到任何其他屏幕,如第二屏幕,第三屏幕.
    5. 现在,按Home并将应用程序置于后台(意味着暂停状态).
    6. 现在转到应用程序列表单击同一应用程序的启动器图标.
  • 发生了什么.

    1. 从第一个屏幕的起点开始启动相同的应用程序.
    2. 它必须在第3屏幕上恢复正在运行的应用程序
    3. 现在按下并从第2次开始申请的第1个屏幕出来.
    4. 它显示了第一次运行应用程序的第3个屏幕.

我已经解释了安装后的一般行为,并使用打开按钮启动应用程序.在我的应用程序中,它创建了2次启动应用程序的不一致状态.

  • 你认为正确的行为应该是什么.

    1. 申请必须恢复.
    2. 申请不得处于不一致的状态.

我有一些日志..

  • 单击"打开"按钮日志:

10-04 21:45:28.703:INFO/ActivityManager(243):从pid 15146开始活动:Intent {act = android.intent.action.MAIN flg = 0x10000000 cmp = com.test/.TestnewversionActivity}.

"看不到上面意图中添加的类别"

  • 单击"启动器"图标的日志:

10-04 21:46:46.109:INFO/ActivityManager(243):开始活动:意图{act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = com.test /来自pid 428的.TestnewversionActivity}

"参见上面意图中添加的类别".

如果有人告诉我如何解决这个或告诉我如何在"打开"按钮上添加类别android.intent.category.LAUNCHER点击然后问题将解决.

我试图在app start,oncreate和很多地方添加意图类别.intent.addCategory( "android.intent.category.LAUNCHER"); 还尝试使用IntentFilter,PackageManager.

这个问题出现在每部Android手机中.

我已经在HTC-SENSE Android版本2.3.3上使用了Logs

android android-intent

7
推荐指数
1
解决办法
1611
查看次数

同时使用setOnItemClickListener和setOnItemLongClickListener两个侦听器同时触发或同时工作.为什么

ListView我使用setOnItemClickListener()setOnItemLongClickListener().当我点击一个项目时它工作正常,但是当我长按一个项目时,有时两个听众同时被解雇或同时工作.为什么?

/**
* on click of list view item show the run time webview.
*/
mListViewStar.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
        isHome = true;
        Animation translate1 = AnimationUtils.loadAnimation(Home.this,
                R.anim.tran_right);
        mRelativeLayout.setVisibility(View.GONE);
        mRelativeLayout.startAnimation(translate1);
        // mProgressBar.setVisibility(View.VISIBLE);
        mProgressDialog = ProgressDialog.show(Home.this, "",
                "Loading...");
        addWebView(mArrayListJBSelectedUrls.get(arg2)
            .getStrSelectedWebsiteUrl().toString(), arg2);
    }
});
/**
* on long press delete item from list view
*/
mListViewStar.setOnItemLongClickListener(new OnItemLongClickListener() {
    @Override
    public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    int …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-layout

7
推荐指数
2
解决办法
3996
查看次数

有关Android文档的说明

注意:即使系统在停止时破坏了您的活动,它仍然保留状态

Bundle中的View对象(例如EditText中的文本)(一对键值对),如果用户导航回活动的同一个实例,则恢复它们 (下一课讲述有关使用Bundle的更多信息)保存其他状态数据,以防您的活动被销毁和重新创建).

同一个活动的实例

它是如何被破坏和重新创建的确切实例,它不是一个新的内存块(另一个实例),任何人都可以帮我清除这一点吗?

android android-lifecycle android-activity

6
推荐指数
1
解决办法
111
查看次数

请解释一些Android服务概念

我只是接近Android服务,但我有很多疑问.这里有一些问题.在开始之前,请注意我已阅读那些页面 Android服务(官方) 有界服务(官方) 加上我的语言的内部课程理论.请耐心等待,我仍然有点困惑.

1)首先,服务区别于AsyncTask主要是因为如果应用程序暂停(即用户正在观看另一个应用程序),它也会继续运行; 在这种情况下,AsyncTask会停止.可以,还是我错了?2)服务在通过startService()启动它的活动的同一个线程中运行.为了不影响Activity的性能,我必须为该服务创建一个单独的线程,例如实现Runnable接口.另一种方法是创建一个扩展IntentService的服务,它自动为服务提供一个新线程:在任何onHandleIntent()调用上创建一个新线程.

现在,让我们来看看我的具体问题.我需要创建一个将被许多活动使用的服务:他的任务是每隔60秒连接到服务器数据库并检查新闻.如果找到新闻,请通知新消息(如果我们在MainActivity上)或显示新消息的标题(如果我们在新闻阅读器中).我该怎么编码呢?我做了一个MainActivity来实例化一个NewsService并立即调用startService().另一方面,我有NewsService扩展IntentService,(当调用onHandleIntent时创建一个新线程?)并寻找新消息.使用IntentService是个坏主意吗?我意识到启动无限期调用startService()的服务会非常难看.在这个练习的开始我认为它是一个很好的解决方案,因为它自动创建一个新的线程,并使Service实现简单.但现在我有些疑惑(我不知道是否有新闻!MainActivity如何知道它?以及如何获得标题)

这应该使用普通的扩展Thread类来完成,它在它的run()方法中创建一个无限的cicle,每隔60秒检查一次新闻,如果有新的,则从远程DB读取标题并更新活动按钮/视图.然后,如果应用程序将被用户关闭,则服务也将关闭.但问题是,如果我正在修改这样的类,当MainActivity暂停或停止时,它的工作将停止,而其他活动(在这种情况下为NewsReader)无法获得任何更新,因为此新线程目前没有获得新闻.所以我需要一个服务.

我希望它很清楚.我该如何以正确的方式实施解决方案?请突出我的文字中的所有错误,我真的需要学习:D

android android-service

6
推荐指数
1
解决办法
444
查看次数

通过多个活动传递数据

1-是我的第一个活动(主要)2-是我的第二个活动3 - 是我的第三个活动

我想从1开始运行2然后运行2运行3,然后从3运行数据并将其返回到1.希望你们明白的人.

这是我的代码:

Runing 2 form 1 liek:

            Intent intent = new Intent(getApplicationContext(),MessageBox.class);
             intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
            startActivityForResult(intent,5);               
Run Code Online (Sandbox Code Playgroud)

然后像这样从2运行3:

                Intent intent = new Intent(getApplicationContext(),ImageReceiver.class);

                startActivityForResult(intent,5);
Run Code Online (Sandbox Code Playgroud)

然后在3我有这样的事情:

          setResult(10);
          finish();
Run Code Online (Sandbox Code Playgroud)

所以我在2中设置结果得到这个结果我有:

        if(requestCode==5)
        {
            if(resultCode==10)
            {

                Intent intent = new Intent(getApplicationContext(),MainActivity.class);

                setResult(5,intent);
                finish();
            }
        }
Run Code Online (Sandbox Code Playgroud)

然后在1我得到:

     if(requestCode==5)
     {
         if(resultCode==5)
         {
             //here i am taking data from 3
         }
     }
Run Code Online (Sandbox Code Playgroud)

问题是我甚至无法在logcat中打开2 coz我得到:

04-23 22:13:15.579:E/AndroidRuntime(15313):android.util.AndroidRuntimeException:使用FORWARD_RESULT_FLAG同时请求结果

我真的不知道该怎么办.请看这个代码.

android android-activity

6
推荐指数
2
解决办法
2328
查看次数

requestLocationUpdates()在单独的Thread中

我需要requestLocationUpdates()在一个单独的线程中,以便不阻止我的应用程序的其余部分(它将在大多数时间运行).最好的方法是什么?

android location android-location

6
推荐指数
1
解决办法
3153
查看次数

编辑器$SuggestionsPopupWindow.initContentView()中的三星资源$NotFoundException

在运行 Android 7.0 的三星设备(J7 和 S7)上发生崩溃。

我已经构建了一个很小的测试应用程序并且可以重现崩溃。SingleActivity扩展Activity(不是AppCompatActivity),简单的布局,包含一个EditText带有inputType="text". 目标 SDK 为 8。

将光标定位在 中EditText并键入时,会建议单词并为单词加下划线。单击某些带下划线的单词或在 中完成编辑EditText,然后返回到EditText。输入一些数据并在 内部单击后EditText,应用程序将因以下堆栈跟踪而崩溃:

06-01 18:56:37.990 10339-10339/sharpmind.de.samsungtest W/ResourceType: No package identifier when getting value for resource number 0x00000000
06-01 18:56:37.991 10339-10339/sharpmind.de.samsungtest D/AndroidRuntime: Shutting down VM
06-01 18:56:37.992 10339-10339/sharpmind.de.samsungtest E/AndroidRuntime: FATAL EXCEPTION: main
Process: sharpmind.de.samsungtest, PID: 10339
android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:202)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2970)
at android.content.res.Resources.getLayout(Resources.java:1986)
at android.view.LayoutInflater.inflate(LayoutInflater.java:425)
at android.view.LayoutInflater.inflate(LayoutInflater.java:378)
at …
Run Code Online (Sandbox Code Playgroud)

android samsung-mobile

6
推荐指数
0
解决办法
172
查看次数

Android:除了打开和关闭屏幕外,是否还有其他意图监听CPU的“睡眠”和“唤醒”?

我的理解是,现有的“屏幕关闭”和“打开”意图并不完全表示设备分别处于睡眠和唤醒状态。设备上的所有应用程序都拥有部分唤醒锁,设备将不会进入深度睡眠状态,但屏幕可能会关闭/打开。

是否有意图收听CPU“ WAKE UP”和“ SLEEP”?

有什么办法,我们知道CPU从深度睡眠中唤醒了吗?

android android-intent

5
推荐指数
1
解决办法
540
查看次数