首页 \ 问答 \ 可以一起使用intellij idea和eclipse(Is it possible to use intellij idea and eclipse together)

可以一起使用intellij idea和eclipse(Is it possible to use intellij idea and eclipse together)

对于某人来说,它可能看起来有点奇怪,但我仍然想知道它是否可能。 到目前为止,我们有许多项目编写了eclipse编码,我们中的一些人想要进入intellij创意世界。

  1. 我们能够同时通过eclipse和intellij一起运行项目吗? 我的意思是,例如我将使用intellij想法,而我的另一个朋友将在同一个项目中使用eclipse而不是intellij想法,这可能吗?

  2. 如果可能的话,它是否会为版本控制系统(例如颠覆)造成任何问题?


for someone it may seems a little weird but still I want to know if it's possible or not. We have a lot of projects which coded on eclipse so far and some of us wants to jump into intellij idea world.

  1. Can we be able to run the projects via eclipse and intellij together at the same time? I mean for instance I'll be using intellij idea while another friend of mine will be using eclipse instead of intellij idea on the same projects, is it possible?

  2. If it's possible, would it create any problem for version control systems such as subversion?


原文:https://stackoverflow.com/questions/21160987
更新时间:2022-01-07 15:01

最满意答案

通过在Activity中创建匿名Runnable类,您将创建对外部类的隐式引用,从而泄漏活动的上下文。 您的延迟Toast消息将在主线程消息队列中继续,从而防止对您的活动上下文进行垃圾收集。

使用带有对活动上下文的弱引用的静态处理程序(静态内部类不包含对其外部类的隐式引用)。

private final ToastHandler mHandler = new ToastHandler(this);

private static class ToastHandler extends Handler {
    private final WeakReference<MainActivity> mActivity;

    public ToastHandler(MainActivity activity) {
        mActivity = new WeakReference<>(activity);
    }

    @Override
    public void handleMessage(Message msg) {
        MainActivity activity = mActivity.get();
        Bundle data = msg.getData();
        if (activity != null) {
            Toast.makeText(activity, data.getString("TEST_KEY"), Toast.LENGTH_LONG).show();
        }
    }
}


  private static final Runnable runnable = new Runnable() {
      @Override
      public void run() { 
                    Message message = new Message();
                    Bundle bundle = new Bundle();
                    bundle.putString("TEST_KEY", "TEST");
                    message.setData(bundle);
                    mHandler.handleMessage(message);
      }
  };

在你的onClick ...

 mHandler.postDelayed(runnable, 1000);

编辑:哎呀,你的runnable需要是静态的


By creating an anonymous Runnable class within an Activity you are creating an implicit reference to your outer class, thereby leaking the context of the activity. Your delayed toast message will continue in the main thread message queue preventing a garbage collect of your activity context.

Use a static handler with a weak reference to your activity context (Static inner classes do not hold an implicit reference to their outer class).

private final ToastHandler mHandler = new ToastHandler(this);

private static class ToastHandler extends Handler {
    private final WeakReference<MainActivity> mActivity;

    public ToastHandler(MainActivity activity) {
        mActivity = new WeakReference<>(activity);
    }

    @Override
    public void handleMessage(Message msg) {
        MainActivity activity = mActivity.get();
        Bundle data = msg.getData();
        if (activity != null) {
            Toast.makeText(activity, data.getString("TEST_KEY"), Toast.LENGTH_LONG).show();
        }
    }
}


  private static final Runnable runnable = new Runnable() {
      @Override
      public void run() { 
                    Message message = new Message();
                    Bundle bundle = new Bundle();
                    bundle.putString("TEST_KEY", "TEST");
                    message.setData(bundle);
                    mHandler.handleMessage(message);
      }
  };

In your onClick...

 mHandler.postDelayed(runnable, 1000);

Edit: Oops, your runnable needs to be static ofc

相关问答

更多
  • 创建一个Utils类: public class Utils { public static void showToast(String msg, Context ctx) { Toast.makeText(ctx, msg, Toast.LENGTH_SHORT).show(); } } 从Activity中使用它: Utils.showToast("Message", this); 来自片段: Utils.showToast("Message", getActivi ...
  • BroadcastReceivers一直在使用后立即销毁。 我不确定它是否在某些先前版本的Android中发生了变化,但您绝不应该假设广播接收器的实例会保留。 它们的目的是立即处理事件,延迟处理应该使用AlarmManager或在服务中进行。 BroadcastReceivers are always destroyed immediately after use. I'm not sure if it changed in some previous version of Android, but you ...
  • 我会说,古典错误: 您忘记了Toast.show()方法;) I would say, classical error : You forgot the Toast.show() method ;)
  • 我想知道是否有一个非常大的scheduledTime变量(假设它代表了几天),处理程序仍将执行runnable? 是的,如果Handler发布的服务和线程将在当时存活。 或者我应该更好地使用AlarmManager吗? 是。 I want to know if having a very big scheduledTime variable (lets say it represents a couple of days), the handler will still execute the runnab ...
  • 处理程序需要在showResult()方法中,或者在调用showResult()之后需要调用它,因为mRunnable不存在。 The handler needs to be inside the showResult() method or you need to call it after you call showResult() because mRunnable doesn't exist as you have it.
  • 这里是另一方面 private int z=0; Runnable r = new Runnable() { @Override public void run() { Toast.makeText(play.this, "z:" + z, Toast.LENGTH_SHORT).show(); if(z<4){ z++; h ...
  • 通过在Activity中创建匿名Runnable类,您将创建对外部类的隐式引用,从而泄漏活动的上下文。 您的延迟Toast消息将在主线程消息队列中继续,从而防止对您的活动上下文进行垃圾收集。 使用带有对活动上下文的弱引用的静态处理程序(静态内部类不包含对其外部类的隐式引用)。 private final ToastHandler mHandler = new ToastHandler(this); private static class ToastHandler extends Handler { ...
  • 我犯了一些错误,因为吐司没有显示任何文字。(那时候我刚接触到android编程) 我犯了什么错误 我没有使用Shared Preferences来存储我的数据。 由于我的接收器是动态注册的。 吐司仅在应用程序运行时或在后台显示。 在EditText输入文本后,我关闭了我的应用程序并将其从最近的应用程序中删除。 然后,我再次打开了应用程序, 它创建了一个新的实例,我认为那里的数据实际上并不存在,并且吐司中没有文本。 我还要感谢Onik的耐心和帮助。 I made few mistakes because of ...
  • 这很简单。 只要您不想再显示ToastMessage,就可以在ToastMessage上调用cancel方法。 参考Toast取消() This is quite simple. Just call the cancel method on your ToastMessage as soon as you don't want to show the ToastMessage anymore. Refer Toast cancel()

相关文章

更多

最新问答

更多
  • 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
  • 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
  • OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
  • 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
  • codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
  • 在计算机拍照在哪里进入
  • 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
  • No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
  • 单页应用程序:页面重新加载(Single Page Application: page reload)
  • 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
  • System.StackOverflow错误(System.StackOverflow error)
  • KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
  • 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
  • android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
  • TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
  • 企业安全培训的各项内容
  • 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
  • C#类名中允许哪些字符?(What characters are allowed in C# class name?)
  • NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
  • 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
  • 将多个行和可变行移动到列(moving multiple and variable rows to columns)
  • 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
  • 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
  • Angular $资源不会改变方法(Angular $resource doesn't change method)
  • 在Angular 5中不是一个函数(is not a function in Angular 5)
  • 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
  • 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
  • 常见的python rpc和cli接口(Common python rpc and cli interface)
  • Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
  • 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)