相关疑难解决方法(0)

Looper的目的是什么以及如何使用它?

我是Android新手.我想知道Looper课程的作用以及如何使用它.我已阅读Android Looper类文档,但我无法完全理解它.我在很多地方都看过它但却无法理解它的目的.任何人都可以通过定义目的来帮助我,Looper并且如果可能的话也给出一个简单的例子吗?

multithreading android android-looper

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

如何更新BroadcastReceiver中的UI

我创建了一个应用程序,我在我的主类(Main Activity)中注册了一个广播接收器,每当我收到BroadcastReceiver我想要更新的UI时,我想要显示一个警告框或设置我的一些文本视图MainActivity.我收到接收器中的所有值但无法设置它们,有人可以帮助我,以便我可以更新我的UI BroadcastReceiver.

我的BroadcastReceiver类是MainActivity的内部类,如下所示: -

public class MainActivity extends Activity {

   ..........

public static class NissanTabBroadcast extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            SharedPreferences shrd = context.getSharedPreferences("NissanGallery", context.MODE_WORLD_READABLE);
            type = shrd.getString("type", "null");
            badges = shrd.getString("badge_count", "null");

            //badge_tips_text.setText(badges);
            /*Editor edit =  shrd.edit();
            edit.remove("type");*/

            Toast.makeText(context, "" + type + "\n" + badge_tips_text.getText().toString(), Toast.LENGTH_LONG).show();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很明显

谢谢

android broadcastreceiver

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

使用LocalBroadcastManager注册的BroacastReceiver的onReceive()运行在哪个线程上?

我在偏好活动中注册广播接收器,并从(唤醒)IntentService发送(同步)广播.显然onReceive在服务的线程上运行.这是我的错吗?是否记录了行为?

偏好活动:

public final class SettingsActivity extends BaseSettings {

    private static CharSequence sMasterKey;
    private CheckBoxPreference mMasterPref;
    // Receiver
    /** If the master preference is changed externally this reacts */
    private BroadcastReceiver mExternalChangeReceiver =
        new ExternalChangeReceiver();

    public static void notifyMonitoringStateChange(Context ctx,
            CharSequence action, boolean isToggling) {
        final LocalBroadcastManager lbm = LocalBroadcastManager
            .getInstance(ctx);
        Intent intent = new Intent(ctx, ExternalChangeReceiver.class);
        intent.setAction(action.toString());
        intent.putExtra(TOGGLING_MONITORING_IN_PROGRESS, isToggling);
        lbm.sendBroadcastSync(intent);
    }

    @Override
    protected void onStart() {
        super.onStart();
        final LocalBroadcastManager lbm = LocalBroadcastManager
            .getInstance(this);
        lbm.registerReceiver(mExternalChangeReceiver, new IntentFilter(
            ac_toggling.toString()));
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

multithreading android broadcastreceiver localbroadcastmanager

10
推荐指数
2
解决办法
3095
查看次数

如何在android应用程序运行时在后台连续检查互联网连接

我想在我的android应用程序运行时在后台连续检查互联网连接.我的意思是从应用程序的启动到应用程序的结束.我该怎么做?该方法应该是什么?

android

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

基于接收广播意图启动网络通信的正确方法是什么?

我开始使用Google的C2DM了.此过程的一部分涉及在注册发生时接收广播意图.在Google的官方C2DM文档中,示例代码在BrodcastReceiver的onReceive()方法中显示以下注释:

// Send the registration ID to the 3rd party site that is sending the messages.
// This should be done in a separate thread.
Run Code Online (Sandbox Code Playgroud)

但是,我读过的所有内容,包括BroadcastReceiver的文档,都表明从onReceive()启动一个线程几乎肯定会引起问题,因为一旦onReceive()返回,该过程很快就会被杀死.

有人可能犯了一个错误,我应该忽略关于使用单独线程的评论,但我猜他们说这是有原因的,即使它有误导性.

有没有理由在返回之前不能或不应该使用与onReceive()相同的线程中的网络?如果这样做有问题,那么即使在C2DM之外,处理必须是常见情况的正确方法是什么?开始服务?

multithreading android broadcastreceiver android-networking android-c2dm

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