小编Mar*_*rqs的帖子

Android:从资源/可绘制文件夹访问图像

我目前正在处理的应用程序有数百张图片.目前我将它们存储在'Drawable'文件夹中.我正在考虑将所有这些文件移到Assets文件夹中.

我的问题是:使用这两种方法时性能是否有任何差异?

android assets image drawable

27
推荐指数
1
解决办法
8648
查看次数

如何安排我的Android应用程序每小时做一些事情

我希望我的应用程序每小时访问数据库并从表中读取下一条记录,然后更新desctop小部件并发送通知.我知道我可以使用AlarmManager来注册我的Intents,但是当手机关闭或重启时它们会被删除.

是否有任何其他Android类/服务,即使我重新启动手机,我会不断更新我的应用程序?

谢谢,

java android schedule alarm alarmmanager

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

Android AsyncTask和SQLite数据库实例

我有一个问题,我不知道如何处理它.我的应用中的一项活动有多个AsyncTasks访问单个SQLiteOpenHelper.我初始化并打开帮助程序onCreate(),我正在关闭它onStop().我还检查它是否已经初始化onResume().

由于我已经发布了我的应用程序,因此doInBackground在尝试访问数据库帮助程序时,我收到了Null Exception错误的数量.我知道这是因为DB onStop()doInBackground被调用之前就已经关闭了(公平).

我的问题是,我应该在哪里关闭数据库连接?在Activity中使用DB帮助程序的单个实例并从多个线程(AsyncTasks)访问它是正确的吗?或者我应该为每个使用单独的DB帮助程序实例AsyncTask

这是我活动的简化骨架:

public class MyActivity extends Activity{
    private DbHelper mDbHelper;
    private ArrayList<ExampleObject> objects;

    @Override
    public void onStop(){
        super.onStop();
        if(mDbHelper != null){
            mDbHelper.close();
            mDbHelper = null;
        }
    }

    @Override
    public void onResume(){
        super.onResume();
        if(mDbHelper == null){
            mDbHelper = new DbHelper(this);
            mDbHelper.open();
        }
    }

    @Override 
    public void onCreate(Bundle icicle) { 
        super.onCreate(icicle); 
        DbHelper mDbHelper = new DbHelper(this);
        mDbHelper.open();
    }

    private …
Run Code Online (Sandbox Code Playgroud)

sqlite android android-asynctask sqliteopenhelper

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

在ActionBar中更改操作溢出文本颜色

我一直在努力改变操作栏中Action Overflow项目的文本颜色.我使用v7 AppCompat和Light主题与Dark actionbar.

在此输入图像描述

actionMenuTextColor似乎没有做任何事情.我需要把它改成黑色文字吗?有任何想法吗?

android android-appcompat android-actionbar

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

Android:从小部件打开错误的活动

我一直在努力解决这个问题.我有一个小部件,显示烹饪食谱的摘要.小部件是可点击的,因此每当用户点击它时,就会打开新活动,并附上该食谱的完整描述.问题是,有时单击小部件时会打开错误的活动.让我给你举个例子:

  1. 用户点击小部件并打开活动A.
  2. 用户从活动A开始活动B(例如食谱索引).
  3. 用户从活动B开始活动C.
  4. 用户按下主页按钮.
  5. 用户再次点击窗口小部件,显示活动C而不是A

我尝试设置这三个标志的组合,这有助于解决问题的一半:

openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
Run Code Online (Sandbox Code Playgroud)

通过使用上面的标志,我设法显示正确的活动(A),直到我执行以下操作:

  1. 用户从窗口小部件打开活动A.
  2. 用户移动到活动B并通过单击新配方打开活动A.
  3. 向用户显示新配方
  4. 用户单击"主页"按钮并单击窗口小部件.
  5. 显示活动A(右侧)但配方不同.
  6. 从现在开始,如果我移动到不同的活动B或C并再次单击"主页"然后再单击"窗口小部件",则不显示活动A,而是显示在按"主页"按钮之前可见的活动A.

我希望我能够详细解释它.我非常感谢你的帮助,因为这件事让我发疯!

更新:

这是我的待处理内容:

Intent openIntent = new Intent(context, ProfanityDefinition.class);

openIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
openIntent.setData(Uri.parse(openIntent.toUri(Intent.URI_INTENT_SCHEME)));

Bundle bundle = new Bundle();
bundle.putBoolean("widgetRequest", true);
openIntent.putExtras(bundle);
PendingIntent openPendingIntent = PendingIntent.getActivity(context, 0, openIntent, PendingIntent.FLAG_UPDATE_CURRENT);
views.setOnClickPendingIntent(R.id.widget_content, openPendingIntent);
Run Code Online (Sandbox Code Playgroud)

谢谢

android widget android-intent android-activity android-pendingintent

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

Android:我应该使用什么视频格式/编码来支持大多数Android设备

我有一组视频剪辑,用户应该可以在我的应用程序内部播放(而不是外部视频播放器).我正在使用带有MediaController的VideoView.在我的Desire HD和Nexus S(都运行Android 2.3.3)上,一切都按预期工作.但是它们不会在订购设备上播放.我收到"抱歉,此视频无法播放"错误消息.

所有视频均为mp4,采用H.264,720w/480h,25fps编码.我也使用过H.263(3gp),但没有运气.

我想支持尽可能多的Android设备.至少从2.1开始

有没有人有同样的问题?您在应用中使用了哪些视频?感谢帮助!

video encoding android media-player android-videoview

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